All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
To: Alexander Graf <agraf@suse.de>
Cc: qemu-ppc <qemu-ppc@nongnu.org>, Paul Mackerras <paulus@samba.org>,
	QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH -V8 1/3] target-ppc: Fix htab_mask calculation
Date: Thu, 09 Jan 2014 21:14:07 +0530	[thread overview]
Message-ID: <87mwj59n3s.fsf@linux.vnet.ibm.com> (raw)
In-Reply-To: <1214D3D2-EAB4-4ED4-B864-9D75A25E7B86@suse.de>

Alexander Graf <agraf@suse.de> writes:

> On 23.12.2013, at 18:22, Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> wrote:
>
>> From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
>> 
>> Correctly update the htab_mask using the return value of
>> KVM_PPC_ALLOCATE_HTAB ioctl. Also we don't update sdr1
>> on GET_SREGS for HV. So don't update htab_mask if sdr1
>> is found to be zero. Fix the pte index calculation to be
>> same as that found in the kernel
>> 
>> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>> ---
>> hw/ppc/spapr.c          | 8 +++++++-
>> target-ppc/cpu.h        | 1 +
>> target-ppc/mmu_helper.c | 4 +++-
>> 3 files changed, 11 insertions(+), 2 deletions(-)
>> 
>> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
>> index 267a47d6cc4d..e99a66170661 100644
>> --- a/hw/ppc/spapr.c
>> +++ b/hw/ppc/spapr.c
>> @@ -731,7 +731,13 @@ static void spapr_cpu_reset(void *opaque)
>> 
>>     env->external_htab = (uint8_t *)spapr->htab;
>>     env->htab_base = -1;
>> -    env->htab_mask = HTAB_SIZE(spapr) - 1;
>> +    /*
>> +     * htab_mask is the mask used to normalize hash value to PTEG index.
>> +     * htab_shift is log2 of hash table size.
>> +     * We have 8 hpte per group, and each hpte is 16 bytes.
>> +     * ie have 128 bytes per hpte entry.
>> +     */
>> +    env->htab_mask = (1ULL << ((spapr)->htab_shift - 7)) - 1;
>>     env->spr[SPR_SDR1] = (target_ulong)(uintptr_t)spapr->htab |
>>         (spapr->htab_shift - 18);
>> }
>> diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h
>> index 26acdba847fa..82db9a442be5 100644
>> --- a/target-ppc/cpu.h
>> +++ b/target-ppc/cpu.h
>> @@ -955,6 +955,7 @@ struct CPUPPCState {
>> #endif
>>     /* segment registers */
>>     hwaddr htab_base;
>> +    /* mask used to normalize hash value to PTEG index */
>>     hwaddr htab_mask;
>>     target_ulong sr[32];
>>     /* externally stored hash table */
>> diff --git a/target-ppc/mmu_helper.c b/target-ppc/mmu_helper.c
>> index 04a840b01697..c39cb7b89ee0 100644
>> --- a/target-ppc/mmu_helper.c
>> +++ b/target-ppc/mmu_helper.c
>> @@ -2025,7 +2025,9 @@ void ppc_store_sdr1(CPUPPCState *env, target_ulong value)
>>                         " stored in SDR1\n", htabsize);
>>                 htabsize = 28;
>>             }
>> -            env->htab_mask = (1ULL << (htabsize + 18)) - 1;
>> +            if (htabsize) {
>
> Better check for external_htab in the caller and never store SDR1 if
> we use an external htab. If you like, add an
> assert(!env->external_htab) at the beginning of ppc_store_sdr1() to
> make sure we really never get here.


will do

-aneesh

      reply	other threads:[~2014-01-09 15:44 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-23 17:22 [Qemu-devel] [PATCH -V8 1/3] target-ppc: Fix htab_mask calculation Aneesh Kumar K.V
2013-12-23 17:23 ` [Qemu-devel] [PATCH -V8 2/3] target-ppc: Update external_htab even when HTAB is managed by kernel Aneesh Kumar K.V
2013-12-23 17:23 ` [Qemu-devel] [PATCH -V8 3/3] target-ppc: Fix page table lookup with kvm enabled Aneesh Kumar K.V
2014-01-09 12:27   ` Alexander Graf
2014-01-09 15:46     ` Aneesh Kumar K.V
2014-01-09 16:05       ` Alexander Graf
2014-01-09 12:21 ` [Qemu-devel] [PATCH -V8 1/3] target-ppc: Fix htab_mask calculation Alexander Graf
2014-01-09 15:44   ` Aneesh Kumar K.V [this message]

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=87mwj59n3s.fsf@linux.vnet.ibm.com \
    --to=aneesh.kumar@linux.vnet.ibm.com \
    --cc=agraf@suse.de \
    --cc=paulus@samba.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /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.