[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/arch
On 21.09.2011 00:23, Matt Thomas wrote:
XXX PAE suspend does not work in amd64 currently, due to (yet
again!) page validation issues with hypervisor. Will fix.
Got it, pool cache invalidation is not working as expected during
save. I remember discussing this matter with Mindaugas a while
back, and due to pool_cache(9) limitations back then the code was
commented out (see the #if 0 ... #endif part in
I had to implement a pool_cache_invalidate_local(), but this wasn't
technically appreciated by many as it made pool_cache abstraction
leaky (and they were right)
I'll discuss this matter again, I think I have an alternative
solution for that one. I may hit a pmf(9) limitation though :/
Maybe add pmf hook for cpu device_t in mi_cpu_attach
That's the idea; that way I could write initial code for vcpu suspend
when Xen MP gets committed.
Unfortunately, the limitation I currently have is for invalidation: only
the CPU can invalidate its own caches, so I have to teach the pmf hook
to somehow execute the "pool_cache(9) deplete" on the right CPU when
pmf_system_suspend is called, or use xcall(9).
rmind@ implemented high priority xcall(9) some time ago, so IMHO the
pool_cache(9) invalidation should now be able to handle all kind of
pools situations, including high IPL pools. But I'll have to check this
one first before uncommenting the xcall part in pool_cache_invalidate().
There's already MD code that tried to circumvent the invalidation
limitation (eg. not handling per-CPU pools, like x86 pmap_create
Main Index |
Thread Index |