1. 26 9月, 2006 5 次提交
    • R
      [PATCH] swsusp: Use memory bitmaps during resume · 940864dd
      Rafael J. Wysocki 提交于
      Make swsusp use memory bitmaps to store its internal information during the
      resume phase of the suspend-resume cycle.
      
      If the pfns of saveable pages are saved during the suspend phase instead of
      the kernel virtual addresses of these pages, we can use them during the resume
      phase directly to set the corresponding bits in a memory bitmap.  Then, this
      bitmap is used to mark the page frames corresponding to the pages that were
      saveable before the suspend (aka "unsafe" page frames).
      
      Next, we allocate as many page frames as needed to store the entire suspend
      image and make sure that there will be some extra free "safe" page frames for
      the list of PBEs constructed later.  Subsequently, the image is loaded and, if
      possible, the data loaded from it are written into their "original" page
      frames (ie.  the ones they had occupied before the suspend).
      
      The image data that cannot be written into their "original" page frames are
      loaded into "safe" page frames and their "original" kernel virtual addresses,
      as well as the addresses of the "safe" pages containing their copies, are
      stored in a list of PBEs.  Finally, the list of PBEs is used to copy the
      remaining image data into their "original" page frames (this is done
      atomically, by the architecture-dependent parts of swsusp).
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      940864dd
    • R
      [PATCH] swsusp: Introduce memory bitmaps · b788db79
      Rafael J. Wysocki 提交于
      Introduce the memory bitmap data structure and make swsusp use in the suspend
      phase.
      
      The current swsusp's internal data structure is not very efficient from the
      memory usage point of view, so it seems reasonable to replace it with a data
      structure that will require less memory, such as a pair of bitmaps.
      
      The idea is to use bitmaps that may be allocated as sets of individual pages,
      so that we can avoid making allocations of order greater than 0.  For this
      reason the memory bitmap structure consists of several linked lists of objects
      that contain pointers to memory pages with the actual bitmap data.  Still, for
      a typical system all of these lists fit in a single page, so it's reasonable
      to introduce an additional mechanism allowing us to allocate all of them
      efficiently without sacrificing the generality of the design.  This is done
      with the help of the chain_allocator structure and associated functions.
      
      We need to use two memory bitmaps during the suspend phase of the
      suspend-resume cycle.  One of them is necessary for marking the saveable
      pages, and the second is used to mark the pages in which to store the copies
      of them (aka image pages).
      
      First, the bitmaps are created and we allocate as many image pages as needed
      (the corresponding bits in the second bitmap are set as soon as the pages are
      allocated).  Second, the bits corresponding to the saveable pages are set in
      the first bitmap and the saveable pages are copied to the image pages.
      Finally, the first bitmap is used to save the kernel virtual addresses of the
      saveable pages and the second one is used to save the contents of the image
      pages.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b788db79
    • R
      [PATCH] Change the name of pagedir_nosave · 75534b50
      Rafael J. Wysocki 提交于
      The name of the pagedir_nosave variable does not make sense any more, so it
      seems reasonable to change it to something more meaningful.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      75534b50
    • R
      [PATCH] swsusp: struct snapshot_handle cleanup · fb13a28b
      Rafael J. Wysocki 提交于
      Add comments describing struct snapshot_handle and its members, change the
      confusing name of its member 'page' to 'cur'.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Cc: Pavel Machek <pavel@ucw.cz>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      fb13a28b
    • A
      [PATCH] swsusp: read speedup · 546e0d27
      Andrew Morton 提交于
      Implement async reads for swsusp resuming.
      
      Crufty old PIII testbox:
      	15.7 MB/s -> 20.3 MB/s
      
      Sony Vaio:
      	14.6 MB/s -> 33.3 MB/s
      
      I didn't implement the post-resume bio_set_pages_dirty().  I don't really
      understand why resume needs to run set_page_dirty() against these pages.
      
      It might be a worry that this code modifies PG_Uptodate, PG_Error and
      PG_Locked against the image pages.  Can this possibly affect the resumed-into
      kernel?  Hopefully not, if we're atomically restoring its mem_map?
      
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Jens Axboe <axboe@suse.de>
      Cc: Laurent Riffard <laurent.riffard@free.fr>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      546e0d27
  2. 26 6月, 2006 1 次提交
  3. 23 6月, 2006 2 次提交
    • R
      [PATCH] swsusp: use less memory during resume · 968808b8
      Rafael J. Wysocki 提交于
      Make swsusp allocate only as much memory as needed to store the image data
      and metadata during resume.
      
      Without this patch swsusp additionally allocates many page frames that will
      conflict with the "original" locations of the image data and are considered
      as "unsafe", treating them as "eaten" pages (ie.  allocated but unusable).
      
      The patch makes swsusp allocate as many pages as it'll need to store the
      data read from the image in one shot, creating a list of allocated "safe"
      pages, and use the observation that all pages allocated by it are marked
      with the PG_nosave and PG_nosave_free flags set.   Namely, when it's about
      to load an image page, swsusp can check whether the page frame
      corresponding to the "original" location of this page has been allocated
      (ie.  if the page frame has the PG_nosave and PG_nosave_free flags set) and
      if so, it can load the page directly into this page frame.   Otherwise it
      uses an allocated "safe" page from the list to store the data that will be
      copied to their "original" location later on.
      
      This allows us to save many page copyings and page allocations during
      resume and in the future it may allow us to load images greater than 50% of
      the normal zone.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: N"Pavel Machek" <pavel@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      968808b8
    • S
      [PATCH] swsusp: add architecture special saveable pages support · ce4ab001
      Shaohua Li 提交于
      1. Add architecture specific pages save/restore support.  Next two patches
         will use this to save/restore 'ACPI NVS' pages.
      
      2. Allow reserved pages 'nosave'.  This could avoid save/restore BIOS
         reserved pages.
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Nigel Cunningham <nigel@suspend2.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      ce4ab001
  4. 23 3月, 2006 5 次提交
  5. 08 2月, 2006 1 次提交
  6. 02 2月, 2006 2 次提交
  7. 07 1月, 2006 6 次提交
  8. 09 11月, 2005 3 次提交
  9. 31 10月, 2005 3 次提交
  10. 28 9月, 2005 1 次提交
  11. 23 9月, 2005 1 次提交
  12. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      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