Re: [PATCH] [7/48] Suspend2 2.1.9.8 for 2.6.12: 352-disable-pdflush-during-suspend.patch

Zwane Mwaikambo
2005-07-06T18:04:05Z

On Wed, 6 Jul 2005, Nigel Cunningham wrote:

> On Wed, 2005-07-06 at 13:34, Zwane Mwaikambo wrote:
> > On Wed, 6 Jul 2005, Nigel Cunningham wrote:
> >
> > > diff -ruNp 353-disable-highmem-tlb-flush-for-copyback.patch-old/mm/highmem.c 353-disable-highmem-tlb-flush-for-copyback.patch-new/mm/highmem.c
> > > --- 353-disable-highmem-tlb-flush-for-copyback.patch-old/mm/highmem.c 2005-06-20 11:47:32.000000000 +1000
> > > +++ 353-disable-highmem-tlb-flush-for-copyback.patch-new/mm/highmem.c 2005-07-04 23:14:20.000000000 +1000
> > > @@ -26,6 +26,7 @@
> > > #include <linux/init.h>
> > > #include <linux/hash.h>
> > > #include <linux/highmem.h>
> > > +#include <linux/suspend.h>
> > > #include <asm/tlbflush.h>
> > >
> > > static mempool_t *page_pool, *isa_page_pool;
> > > @@ -95,7 +96,10 @@ static void flush_all_zero_pkmaps(void)
> > >
> > > set_page_address(page, NULL);
> > > }
> > > - flush_tlb_kernel_range(PKMAP_ADDR(0), PKMAP_ADDR(LAST_PKMAP));
> > > + if (test_suspend_state(SUSPEND_FREEZE_SMP))
> > > + __flush_tlb();
> > > + else
> > > + flush_tlb_kernel_range(PKMAP_ADDR(0), PKMAP_ADDR(LAST_PKMAP));
> > > }
> > >
> > > static inline unsigned long map_new_virtual(struct page *page)
> >
> > What state are the other processors in when you hit this path?
>
> Looping in arch specific code, waiting for an atomic_t to tell them it's
> time to restore state and carry on. They're there the whole time CPU0 is
> restoring the image and highmem.

Oh ok, so they wouldn't have TLB entries for the above.

Thanks,
Zwane