X-Git-Url: https://git.decadent.org.uk/gitweb/?p=kernel-news-talk.git;a=blobdiff_plain;f=index.html;h=a21b55937a74646cf9df22bd99ae3aae81b93803;hp=30405ac15bc94b29f69eb5dd85db795be0f8d7ad;hb=52544564a04e423767114258d141c6342cb237f8;hpb=99ea3b2f5f0eb8fe7820296f3c44d5fcd335cd1d diff --git a/index.html b/index.html index 30405ac..a21b559 100644 --- a/index.html +++ b/index.html @@ -86,7 +86,7 @@ every week or two) @@ -155,7 +155,7 @@ unnamed temporary file on that filesystem
  • - As with tmpfile(), the file disppears on + As with tmpfile(), the file disappears on last close()
  • @@ -170,6 +170,68 @@ +
    +

    Network busy-polling [3.11] (1)

    +

    A conventional network request/response process looks like:

    + +
      +
    1. + Task calls send(); network stack constructs a + packet; driver adds it to hardware Tx queue +
    2. +
    3. + Task calls poll() or recv(), which blocks; + kernel puts it to sleep and possibly idles the CPU +
    4. +
    5. + Network adapter receives response and generates IRQ, waking + up CPU +
    6. +
    7. + Driver's IRQ handler schedules polling of the hardware Rx + queue (NAPI) +
    8. +
    9. + Kernel runs the driver's NAPI poll function, which passes + the response packet into the network stack +
    10. +
    11. + Network stack decodes packet headers and adds packet to + the task's socket +
    12. +
    13. + Network stack wakes up sleeping task; scheduler switches + to it and the socket call returns +
    14. +
    +
    +
    + +
    +

    Network busy-polling [3.11] (2)

    + +
    +

    Lustre filesystem [3.12]

    +
    +

    Btrfs offline dedupe [3.12]

    + +
    + +
    +

    nftables [3.13]

    + +
    + +
    +

    User-space lockdep [3.14]

    + +
    + +
    +

    arm64 and ppc64el ports

    + +
    + +
    +

    File-private locking [3.15]

    + +
    + +
    +

    Multiqueue block devices [3.16]

    + +
    +

    Questions?