[PATCH 2/2] powerpc,kexec: Speedup kexec hpte tear down
Michael Ellerman
michael at ellerman.id.au
Tue May 11 17:04:23 EST 2010
On Tue, 2010-05-11 at 16:28 +1000, Michael Neuling wrote:
> Currently for kexec the PTE tear down on 1TB segment systems normally
> requires 3 hcalls for each PTE removal. On a machine with 32GB of
> memory it can take around a minute to remove all the PTEs.
>
..
> - /* TODO: Use bulk call */
...
> + /* Read in batches of 4,
> + * invalidate only valid entries not in the VRMA
> + * hpte_count will be a multiple of 4
> + */
> + for (i = 0; i < hpte_count; i += 4) {
> + lpar_rc = plpar_pte_read_4_raw(0, i, (void *)ptes);
> + if (lpar_rc != H_SUCCESS)
> + continue;
> + for (j = 0; j < 4; j++){
> + if ((ptes[j].pteh & HPTE_V_VRMA_MASK) ==
> + HPTE_V_VRMA_MASK)
> + continue;
> + if (ptes[j].pteh & HPTE_V_VALID)
> + plpar_pte_remove_raw(0, i + j, 0,
> + &(ptes[j].pteh), &(ptes[j].ptel));
> }
Have you tried using the bulk remove call, if none of the HPTEs are for
the VRMA? Rumour was it was slower/the-same, but that may have been
apocryphal.
cheers
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20100511/8fc75a3b/attachment-0001.pgp>
More information about the Linuxppc-dev
mailing list