All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Anshuman Khandual <khandual@linux.vnet.ibm.com>
Cc: paulus@samba.org, mpe@ellerman.id.au, benh@kernel.crashing.org,
	aik@ozlabs.ru, lvivier@redhat.com, thuth@redhat.com,
	linuxppc-dev@lists.ozlabs.org
Subject: Re: [RFCv2 7/9] pseries: Add support for hash table resizing
Date: Mon, 1 Feb 2016 22:04:11 +1100	[thread overview]
Message-ID: <20160201110411.GJ23043@voom.redhat.com> (raw)
In-Reply-To: <56AF17CD.3080300@linux.vnet.ibm.com>

[-- Attachment #1: Type: text/plain, Size: 1544 bytes --]

On Mon, Feb 01, 2016 at 02:01:09PM +0530, Anshuman Khandual wrote:
> On 01/29/2016 10:54 AM, David Gibson wrote:
> 
> > +
> > +static int pseries_lpar_resize_hpt_commit(void *data)
> > +{
> > +	struct hpt_resize_state *state = data;
> > +
> > +	state->commit_rc = plpar_resize_hpt_commit(0, state->shift);
> > +	if (state->commit_rc != H_SUCCESS)
> > +		return -EIO;
> > +
> > +	/* Hypervisor has transitioned the HTAB, update our globals */
> > +	ppc64_pft_size = state->shift;
> > +	htab_size_bytes = 1UL << ppc64_pft_size;
> > +	htab_hash_mask = (htab_size_bytes >> 7) - 1;
> > +
> > +	return 0;
> > +}
> > +
> 
> snip
> 
> > +/* Must be called in user context */
> > +static int pseries_lpar_resize_hpt(unsigned long shift)
> > +{
> > +	struct hpt_resize_state state = {
> > +		.shift = shift,
> > +		.commit_rc = H_FUNCTION,
> 
> > +
> > +	rc = stop_machine(pseries_lpar_resize_hpt_commit, &state, NULL);
> 
> With my limited knowledge of stop_machine, wondering if the current
> or any future version of 'pseries_lpar_resize_hpt_commit' function
> can cause HPT change (page fault path) while stop is executing it.

It can, but the H_RESIZE_HPT_COMMIT hypercall is synchronous so the
cpu executing it can't make any HPT updates during it.  The
stop_machine() prevents any other cpus doing HPT updates.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2016-02-01 11:07 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-29  5:23 [RFCv2 0/9] PAPR hash page table resizing (guest side) David Gibson
2016-01-29  5:23 ` [RFCv2 1/9] memblock: Don't mark memblock_phys_mem_size() as __init David Gibson
2016-02-01  5:50   ` Anshuman Khandual
2016-02-08  2:46   ` Paul Mackerras
2016-01-29  5:23 ` [RFCv2 2/9] arch/powerpc: Clean up error handling for htab_remove_mapping David Gibson
2016-02-01  5:54   ` Anshuman Khandual
2016-02-08  2:48   ` Paul Mackerras
2016-01-29  5:23 ` [RFCv2 3/9] arch/powerpc: Handle removing maybe-present bolted HPTEs David Gibson
2016-02-01  5:58   ` Anshuman Khandual
2016-02-02  1:08     ` David Gibson
2016-02-02 13:49   ` Denis Kirjanov
2016-02-08  2:54   ` Paul Mackerras
2016-02-09  0:43     ` David Gibson
2016-01-29  5:23 ` [RFCv2 4/9] arch/powerpc: Clean up memory hotplug failure paths David Gibson
2016-02-01  6:29   ` Anshuman Khandual
2016-02-02 15:04   ` Nathan Fontenot
2016-02-03  4:31     ` David Gibson
2016-02-08  5:47   ` Paul Mackerras
2016-01-29  5:23 ` [RFCv2 5/9] arch/powerpc: Split hash page table sizing heuristic into a helper David Gibson
2016-02-01  7:04   ` Anshuman Khandual
2016-02-02  1:04     ` David Gibson
2016-02-04 10:56       ` Anshuman Khandual
2016-02-08  5:57         ` Paul Mackerras
2016-01-29  5:24 ` [RFCv2 6/9] pseries: Add hypercall wrappers for hash page table resizing David Gibson
2016-02-01  7:11   ` Anshuman Khandual
2016-02-02  0:58     ` David Gibson
2016-02-04 11:11       ` Anshuman Khandual
2016-02-07 22:33         ` David Gibson
2016-02-08  5:58   ` Paul Mackerras
2016-01-29  5:24 ` [RFCv2 7/9] pseries: Add support for hash " David Gibson
2016-02-01  8:31   ` Anshuman Khandual
2016-02-01 11:04     ` David Gibson [this message]
2016-02-08  5:59   ` Paul Mackerras
2016-01-29  5:24 ` [RFCv2 8/9] pseries: Advertise HPT resizing support via CAS David Gibson
2016-02-01  8:36   ` Anshuman Khandual
2016-02-08  6:00   ` Paul Mackerras
2016-01-29  5:24 ` [RFCv2 9/9] pseries: Automatically resize HPT for memory hot add/remove David Gibson
2016-02-01  8:51   ` Anshuman Khandual
2016-02-01 10:55     ` David Gibson
2016-02-08  6:01   ` Paul Mackerras
2016-02-01  5:50 ` [RFCv2 0/9] PAPR hash page table resizing (guest side) Anshuman Khandual
2016-02-02  0:57   ` David Gibson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160201110411.GJ23043@voom.redhat.com \
    --to=david@gibson.dropbear.id.au \
    --cc=aik@ozlabs.ru \
    --cc=benh@kernel.crashing.org \
    --cc=khandual@linux.vnet.ibm.com \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=lvivier@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=paulus@samba.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.