forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Suraj Singh edited this page Mar 24, 2019
·
9 revisions
Welcome to the Linux PI programmers wiki!
The purpose of this organisation is to implement the PI AQM in the Linux Kernel. With PIE already implemented, implementing PI would involve removing the parts of PIE that are not involved in PI.
- Found the original PI AQM paper
- Read through the paper to understand how it is different from PIE. Immediate observations - different
T_Update(sampling frequency), alpha and beta are set differently - possibly dependant on the sampling frequency. Different drop probability equation. Wiki doc here - Read through PIE fully, to understand its components and which components we would be chopping off.
- Started reading through the PIE source code in Linux. We finished one pass of the code until line 450 and have accumulated a bunch of doubts. We have documented our findings here
- Created an organisation. Forked the kernel and pushed existing wiki articles here.
- Began Implementation.
- To the best of our knowledge, chopped off all the parts of PIE that aren't needed. Knobs like alpha, beta, q_ref are yet to be updated.
- Made sch_pi.c in line with the formatting requirements of checkpatch.pl
- Downloaded and set up the testbed consisting of multiple VMs and namespaces.
- Got experience of compiling the entire Linux kernel for the first time and installed the same onto the router in the testbed topology
- Added the required files to iproute2 repository and installed the same on to the router. Now, have to set AQM to PI using tc on the router and record results using
flent.
This is just a summary of the changes we've made till now. For more details, look at commit history.
- Created a copy of
sch_pie.c - Renamed all
piefunctions topi. - Removed
burst_timerelated statements. - Added
tc_pi_xstats
In iproute2:
- Created
tc/q_pi.c - Updated
include/uapi/linux/pkt_sched.h
flent:
- install using
sudo add-apt-repository ppa:tohojo/flentsudo apt-get updatesudo apt-get install flent - in
run-tests, changetcp_5uptotcp_4upandtcp50_uptotcp_12up - run the script using
sudo ./run-tests