120 likes | 257 Views
Design of a Modification to an Ethernet Driver. Introduction. The purpose of this project is to modify the Ethernet device driver so that it will not block a high priority user process Real time systems Schedualbility results. Goals. Two main approaches available right now
E N D
Introduction • The purpose of this project is to modify the Ethernet device driver so that it will not block a high priority user process • Real time systems • Schedualbility results
Goals • Two main approaches available right now • Limit number of interrupts • Move Bottom Half • Focusing on the first approach. • Expect to be able to measure a performance increase in high priority processes
Design • A (N+1) circular list to store the network interrupts • A timer for time control (P time units) • The general mechanism of disabling and enabling interrupts and IRQs
Design (continued) • How to disable only the Ethernet interrupt … IRQ mask UNBLOCK macros and ACK macros • How to modify … device driver code (mainly the interrupt handler part), a timer, mask modification --- hack_irq() and unhack_irq()
Implementation • The implementation will be coded and tested in the following stages: • Compile a new Kernel with our Ethernet driver specified as a module. • Install the new Kernel on our system. • Make some simple changes to the Ethernet module source code contained in 3C503.c and 8390.c , recompile, and re-insert the module into the OS. (see Appendix A)
Make modifications to the Kernel that allow the ability to enable/disable interrupts for our Ethernet device inside of its interrupt handler. • Make coding changes to test the ability to disable the Ethernet interrupt inside of our Interrupt handler. • Make coding changes to add a timer to the interrupt handler. Also add an interrupt timer function.
Add the code that limits the number of interrupts N can occur for any time period P. • Write the user level program to test our implementation of a more real time Linux system • Gather data and draw conclusions. • Repeat steps 5 – 9 until desired results are achieved.
Testing • Basic Experiments - Original kernel and Ethernet driver - Modified kernel and Ethernet driver • Tests with interrupts active - Load up Ethernet with lots of packets
Testing (continued) • Design of a high-priority user process • Validation Testing • Performance Testing • Some additional experiments ?
Conclusion • We have set up our computer • Made a script to load modified code, and tested script
Thank You • Working together we will modify the kernel and driver