diff options
Diffstat (limited to 'Documentation/networking/NAPI_HOWTO.txt')
-rw-r--r-- | Documentation/networking/NAPI_HOWTO.txt | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/Documentation/networking/NAPI_HOWTO.txt b/Documentation/networking/NAPI_HOWTO.txt index 93af3e87c65b..c300f26a2772 100644 --- a/Documentation/networking/NAPI_HOWTO.txt +++ b/Documentation/networking/NAPI_HOWTO.txt | |||
@@ -95,8 +95,8 @@ There are two types of event register ACK mechanisms. | |||
95 | Move all to dev->poll() | 95 | Move all to dev->poll() |
96 | 96 | ||
97 | C) Ability to detect new work correctly. | 97 | C) Ability to detect new work correctly. |
98 | NAPI works by shutting down event interrupts when theres work and | 98 | NAPI works by shutting down event interrupts when there's work and |
99 | turning them on when theres none. | 99 | turning them on when there's none. |
100 | New packets might show up in the small window while interrupts were being | 100 | New packets might show up in the small window while interrupts were being |
101 | re-enabled (refer to appendix 2). A packet might sneak in during the period | 101 | re-enabled (refer to appendix 2). A packet might sneak in during the period |
102 | we are enabling interrupts. We only get to know about such a packet when the | 102 | we are enabling interrupts. We only get to know about such a packet when the |
@@ -114,7 +114,7 @@ Locking rules and environmental guarantees | |||
114 | only one CPU can pick the initial interrupt and hence the initial | 114 | only one CPU can pick the initial interrupt and hence the initial |
115 | netif_rx_schedule(dev); | 115 | netif_rx_schedule(dev); |
116 | - The core layer invokes devices to send packets in a round robin format. | 116 | - The core layer invokes devices to send packets in a round robin format. |
117 | This implies receive is totaly lockless because of the guarantee only that | 117 | This implies receive is totally lockless because of the guarantee that only |
118 | one CPU is executing it. | 118 | one CPU is executing it. |
119 | - contention can only be the result of some other CPU accessing the rx | 119 | - contention can only be the result of some other CPU accessing the rx |
120 | ring. This happens only in close() and suspend() (when these methods | 120 | ring. This happens only in close() and suspend() (when these methods |
@@ -510,7 +510,7 @@ static int my_poll (struct net_device *dev, int *budget) | |||
510 | an interrupt will be generated */ | 510 | an interrupt will be generated */ |
511 | goto done; | 511 | goto done; |
512 | } | 512 | } |
513 | /* done! at least thats what it looks like ;-> | 513 | /* done! at least that's what it looks like ;-> |
514 | if new packets came in after our last check on status bits | 514 | if new packets came in after our last check on status bits |
515 | they'll be caught by the while check and we go back and clear them | 515 | they'll be caught by the while check and we go back and clear them |
516 | since we havent exceeded our quota */ | 516 | since we havent exceeded our quota */ |
@@ -678,10 +678,10 @@ routine: | |||
678 | CSR5 bit of interest is only the rx status. | 678 | CSR5 bit of interest is only the rx status. |
679 | If you look at the last if statement: | 679 | If you look at the last if statement: |
680 | you just finished grabbing all the packets from the rx ring .. you check if | 680 | you just finished grabbing all the packets from the rx ring .. you check if |
681 | status bit says theres more packets just in ... it says none; you then | 681 | status bit says there are more packets just in ... it says none; you then |
682 | enable rx interrupts again; if a new packet just came in during this check, | 682 | enable rx interrupts again; if a new packet just came in during this check, |
683 | we are counting that CSR5 will be set in that small window of opportunity | 683 | we are counting that CSR5 will be set in that small window of opportunity |
684 | and that by re-enabling interrupts, we would actually triger an interrupt | 684 | and that by re-enabling interrupts, we would actually trigger an interrupt |
685 | to register the new packet for processing. | 685 | to register the new packet for processing. |
686 | 686 | ||
687 | [The above description nay be very verbose, if you have better wording | 687 | [The above description nay be very verbose, if you have better wording |