Upload
gregory-mckenzie
View
212
Download
0
Embed Size (px)
Citation preview
Design of a Modification Design of a Modification to an Ethernet Driverto an Ethernet Driver
IntroductionIntroduction
• 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
GoalsGoals
• Two main approaches available right nowTwo main approaches available right now– Limit number of interruptsLimit number of interrupts
– Move Bottom HalfMove Bottom Half
• Focusing on the first approach.Focusing on the first approach.
• Expect to be able to measure a Expect to be able to measure a performance increase in high priority performance increase in high priority processesprocesses
DesignDesign
• A (N+1) circular list to store the A (N+1) circular list to store the network interrupts network interrupts
• A timer for time control (P time A timer for time control (P time units)units)
• The general mechanism of disabling The general mechanism of disabling and enabling interrupts and IRQsand enabling interrupts and IRQs
Design (continued)Design (continued)• How to disable only the Ethernet How to disable only the Ethernet
interrupt …interrupt … IRQ IRQ maskmaskUNBLOCK macros and ACK macrosUNBLOCK macros and ACK macros
• How to modify …How to modify … device device driver code (mainly the interrupt handler driver code (mainly the interrupt handler part), a timer, mask modification --- part), a timer, mask modification --- hack_irq() and unhack_irq()hack_irq() and unhack_irq()
ImplementationImplementation• 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.
TestingTesting
• Basic ExperimentsBasic Experiments - - Original kernel and Ethernet driverOriginal kernel and Ethernet driver - - Modified kernel and Ethernet driverModified kernel and Ethernet driver
• Tests with interrupts activeTests with interrupts active - - Load up Ethernet with lots of Load up Ethernet with lots of packetspackets
Testing (continued)Testing (continued)
• Design of a high-priority user Design of a high-priority user processprocess
• Validation TestingValidation Testing
• Performance TestingPerformance Testing
• Some additional experiments ?Some additional experiments ?
ConclusionConclusion
• We have set up our computerWe have set up our computer
• Made a script to load modified code, Made a script to load modified code, and tested scriptand tested script
Thank YouThank You
• Working together we will modify the Working together we will modify the kernel and driverkernel and driver