1. 01 4月, 2009 1 次提交
  2. 28 8月, 2008 1 次提交
  3. 10 2月, 2008 2 次提交
  4. 02 2月, 2008 1 次提交
  5. 30 1月, 2008 3 次提交
  6. 18 12月, 2007 1 次提交
  7. 24 10月, 2007 1 次提交
  8. 20 10月, 2007 2 次提交
  9. 19 10月, 2007 3 次提交
    • R
      Hibernation: Use temporary page tables for kernel text mapping on x86_64 · efa4d2fb
      Rafael J. Wysocki 提交于
      Use temporary page tables for the kernel text mapping during hibernation
      restore on x86_64.
      
      Without the patch, the original boot kernel's page tables that represent the
      kernel text mapping are used while the core of the image kernel is being
      restored.  However, in principle, if the boot kernel is not identical to the
      image kernel, the location of these page tables in the image kernel need not
      be the same, so we should create a safe copy of the kernel text mapping prior
      to restoring the core of the image kernel.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      efa4d2fb
    • R
      Hibernation: Pass CR3 in the image header on x86_64 · c30bb68c
      Rafael J. Wysocki 提交于
      Since we already pass the address of restore_registers() in the image header,
      we can also pass the value of the CR3 register from before the hibernation in
      the same way.  This will allow us to avoid using init_level4_pgt page tables
      during the restore.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c30bb68c
    • R
      Hibernation: Arbitrary boot kernel support on x86_64 · d158cbdf
      Rafael J. Wysocki 提交于
      Make it possible to restore a hibernation image on x86_64 with the help of a
      kernel different from the one in the image.
      
      The idea is to split the core restoration code into two separate parts and to
      place each of them in a different page.   The first part belongs to the boot
      kernel and is executed as the last step of the image kernel's memory
      restoration procedure.   Before being executed, it is relocated to a safe page
      that won't be overwritten while copying the image kernel pages.
      
      The final operation performed by it is a jump to the second part of the core
      restoration code that belongs to the image kernel and has just been restored.
      This code makes the CPU switch to the image kernel's page tables and restores
      the state of general purpose registers (including the stack pointer) from
      before the hibernation.
      
      The main issue with this idea is that in order to jump to the second part of
      the core restoration code the boot kernel needs to know its address.
       However, this address may be passed to it in the image header.   Namely, the
      part of the image header previously used for checking if the version of the
      image kernel is correct can be replaced with some architecture specific data
      that will allow the boot kernel to jump to the right address within the image
      kernel.   These data should also be used for checking if the image kernel is
      compatible with the boot kernel (as far as the memory restroration procedure
      is concerned).  It can be done, for example, with the help of a "magic" value
      that has to be equal in both kernels, so that they can be regarded as
      compatible.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d158cbdf
  10. 11 10月, 2007 2 次提交
  11. 30 7月, 2007 1 次提交
  12. 23 7月, 2007 1 次提交
  13. 03 5月, 2007 3 次提交
    • B
      [PATCH] x86: Save and restore the fixed-range MTRRs of the BSP when suspending · 3ebad590
      Bernhard Kaindl 提交于
      Note: This patch didn'nt need an update since it's initial post.
      
      Some BIOSes may modify fixed-range MTRRs in SMM, e.g. when they
      transition the system into ACPI mode, which is entered thru an SMI,
      triggered by Linux in acpi_enable().
      
      SMIs which cause that Linux is interrupted and BIOS code is
      executed (which may change e.g. fixed-range MTRRs) in SMM may
      be raised by an embedded system controller which is often found
      in notebooks also at other occasions.
      
      If we would not update our copy of the fixed-range MTRRs before
      suspending to RAM or to disk, restore_processor_state() would
      set the fixed-range MTRRs of the BSP using old backup values
      which may be outdated and this could cause the system to fail
      later during resume.
      
      This patch ensures that our copy of the fixed-range MTRRs
      is updated when saving the boot processor state on suspend
      to disk and suspend to RAM.
      
      In combination with other patches this allows to fix s2ram
      and s2disk on the Acer Ferrari 1000 notebook and at least
      s2disk on the Acer Ferrari 5000 notebook.
      Signed-off-by: NBernhard Kaindl <bk@suse.de>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Dave Jones <davej@codemonkey.org.uk>
      3ebad590
    • V
      [PATCH] x86: Move swsusp __pa() dependent code to arch portion · 49c3df6a
      Vivek Goyal 提交于
      o __pa() should be used only on kernel linearly mapped virtual addresses
        and not on kernel text and data addresses.
      
      o Hibernation code needs to determine the physical address associated
        with kernel symbol to mark a section boundary which contains pages which
        don't have to be saved and restored during hibernate/resume operation.
      
      o Move this piece of code in arch dependent section. So that architectures
        which don't have kernel text/data mapped into kernel linearly mapped
        region can come up with their own ways of determining physical addresses
        associated with a kernel text.
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      49c3df6a
    • V
      [PATCH] x86-64: Add EFER to the register set saved by save_processor_state · 3c321bce
      Vivek Goyal 提交于
      EFER varies like %cr4 depending on the cpu capabilities, and which cpu
      capabilities we want to make use of.  So save/restore it make certain
      we have the same EFER value when we are done.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NVivek Goyal <vgoyal@in.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      3c321bce
  14. 01 7月, 2006 1 次提交
  15. 12 1月, 2006 1 次提交
  16. 31 10月, 2005 2 次提交
  17. 10 10月, 2005 1 次提交
    • R
      [PATCH] x86_64: Set up safe page tables during resume · 3dd08325
      Rafael J. Wysocki 提交于
      The following patch makes swsusp avoid the possible temporary corruption
      of page translation tables during resume on x86-64.  This is achieved by
      creating a copy of the relevant page tables that will not be modified by
      swsusp and can be safely used by it on resume.
      
      The problem is that during resume on x86-64 swsusp may temporarily
      corrupt the page tables used for the direct mapping of RAM.  If that
      happens, a page fault occurs and cannot be handled properly, which leads
      to the solid hang of the affected system.  This leads to the loss of the
      system's state from before suspend and may result in the loss of data or
      the corruption of filesystems, so it is a serious issue.  Also, it
      appears to happen quite often (for me, as often as 50% of the time).
      
      The problem is related to the fact that (at least) one of the PMD
      entries used in the direct memory mapping (starting at PAGE_OFFSET)
      points to a page table the physical address of which is much greater
      than the physical address of the PMD entry itself.  Moreover,
      unfortunately, the physical address of the page table before suspend
      (i.e.  the one stored in the suspend image) happens to be different to
      the physical address of the corresponding page table used during resume
      (i.e.  the one that is valid right before swsusp_arch_resume() in
      arch/x86_64/kernel/suspend_asm.S is executed).  Thus while the image is
      restored, the "offending" PMD entry gets overwritten, so it does not
      point to the right physical address any more (i.e.  there's no page
      table at the address pointed to by it, because it points to the address
      the page table has been at during suspend).  Consequently, if the PMD
      entry is used later on, and it _is_ used in the process of copying the
      image pages, a page fault occurs, but it cannot be handled in the normal
      way and the system hangs.
      
      In principle we can call create_resume_mapping() from
      swsusp_arch_resume() (ie.  from suspend_asm.S), but then the memory
      allocations in create_resume_mapping(), resume_pud_mapping(), and
      resume_pmd_mapping() must be made carefully so that we use _only_
      NosaveFree pages in them (the other pages are overwritten by the loop in
      swsusp_arch_resume()).  Additionally, we are in atomic context at that
      time, so we cannot use GFP_KERNEL.  Moreover, if one of the allocations
      fails, we should free all of the allocated pages, so we need to trace
      them somehow.
      
      All of this is done in the appended patch, except that the functions
      populating the page tables are located in arch/x86_64/kernel/suspend.c
      rather than in init.c.  It may be done in a more elegan way in the
      future, with the help of some swsusp patches that are in the works now.
      
      [AK: move some externs into headers, renamed a function]
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3dd08325
  18. 13 9月, 2005 1 次提交
  19. 08 7月, 2005 1 次提交
  20. 26 6月, 2005 1 次提交
  21. 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