1. 01 Mar, 2013 1 commit
    • Mikulas Patocka's avatar
      dm kcopyd: introduce configurable throttling · df5d2e90
      Mikulas Patocka authored
      This patch allows the administrator to reduce the rate at which kcopyd
      issues I/O.
      
      Each module that uses kcopyd acquires a throttle parameter that can be
      set in /sys/module/*/parameters.
      
      We maintain a history of kcopyd usage by each module in the variables
      io_period and total_period in struct dm_kcopyd_throttle. The actual
      kcopyd activity is calculated as a percentage of time equal to
      "(100 * io_period / total_period)".  This is compared with the user-defined
      throttle percentage threshold and if it is exceeded, we sleep.
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      df5d2e90
  2. 31 Oct, 2011 1 commit
  3. 02 Aug, 2011 1 commit
    • Mikulas Patocka's avatar
      dm snapshot: skip reading origin when overwriting complete chunk · a6e50b40
      Mikulas Patocka authored
      If we write a full chunk in the snapshot, skip reading the origin device
      because the whole chunk will be overwritten anyway.
      
      This patch changes the snapshot write logic when a full chunk is written.
      In this case:
        1. allocate the exception
        2. dispatch the bio (but don't report the bio completion to device mapper)
        3. write the exception record
        4. report bio completed
      
      Callbacks must be done through the kcopyd thread, because callbacks must not
      race with each other.  So we create two new functions:
      
        dm_kcopyd_prepare_callback: allocate a job structure and prepare the callback.
        (This function must not be called from interrupt context.)
      
        dm_kcopyd_do_callback: submit callback.
        (This function may be called from interrupt context.)
      
      Performance test (on snapshots with 4k chunk size):
        without the patch:
          non-direct-io sequential write (dd):    17.7MB/s
          direct-io sequential write (dd):        20.9MB/s
          non-direct-io random write (mkfs.ext2): 0.44s
      
        with the patch:
          non-direct-io sequential write (dd):    26.5MB/s
          direct-io sequential write (dd):        33.2MB/s
          non-direct-io random write (mkfs.ext2): 0.27s
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      a6e50b40
  4. 29 May, 2011 2 commits
  5. 25 Apr, 2008 4 commits
  6. 28 Mar, 2008 1 commit
  7. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4