Message ID | 20230912120650.371781-1-anisinha@redhat.com |
---|---|
State | New |
Headers | show |
Series | cpu/cpuid: check CPUID_PAE to determine 36 bit processor address space | expand |
On 12.09.23 14:06, Ani Sinha wrote: > PAE mode in x86 supports 36 bit address space. Check the PAE CPUID on the > guest processor and set phys_bits to 36 if PAE feature is set. This is in > addition to checking the presence of PSE36 CPUID feature for setting 36 bit > phys_bits. > > Signed-off-by: Ani Sinha <anisinha@redhat.com> > --- > target/i386/cpu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > Note: Not sure what tests I should be running in order to make sure I am > not breaking any guest OSes. Usual qtests pass. > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c > index 24ee67b42d..f3a5c99117 100644 > --- a/target/i386/cpu.c > +++ b/target/i386/cpu.c > @@ -7375,7 +7375,7 @@ static void x86_cpu_realizefn(DeviceState *dev, Error **errp) > return; > } > > - if (env->features[FEAT_1_EDX] & CPUID_PSE36) { > + if (env->features[FEAT_1_EDX] & (CPUID_PSE36 | CPUID_PAE)) { > cpu->phys_bits = 36; > } else { > cpu->phys_bits = 32; Reviewed-by: David Hildenbrand <david@redhat.com>
On Tue, Sep 12, 2023 at 05:36:50PM +0530, Ani Sinha wrote: > PAE mode in x86 supports 36 bit address space. Check the PAE CPUID on the > guest processor and set phys_bits to 36 if PAE feature is set. This is in > addition to checking the presence of PSE36 CPUID feature for setting 36 bit > phys_bits. > > Signed-off-by: Ani Sinha <anisinha@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> who's applying this? > --- > target/i386/cpu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > Note: Not sure what tests I should be running in order to make sure I am > not breaking any guest OSes. Usual qtests pass. > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c > index 24ee67b42d..f3a5c99117 100644 > --- a/target/i386/cpu.c > +++ b/target/i386/cpu.c > @@ -7375,7 +7375,7 @@ static void x86_cpu_realizefn(DeviceState *dev, Error **errp) > return; > } > > - if (env->features[FEAT_1_EDX] & CPUID_PSE36) { > + if (env->features[FEAT_1_EDX] & (CPUID_PSE36 | CPUID_PAE)) { > cpu->phys_bits = 36; > } else { > cpu->phys_bits = 32; > -- > 2.39.1
On Wed, 18 Oct, 2023, 5:35 pm Michael S. Tsirkin, <mst@redhat.com> wrote: > On Tue, Sep 12, 2023 at 05:36:50PM +0530, Ani Sinha wrote: > > PAE mode in x86 supports 36 bit address space. Check the PAE CPUID on the > > guest processor and set phys_bits to 36 if PAE feature is set. This is in > > addition to checking the presence of PSE36 CPUID feature for setting 36 > bit > > phys_bits. > > > > Signed-off-by: Ani Sinha <anisinha@redhat.com> > > Acked-by: Michael S. Tsirkin <mst@redhat.com> > > who's applying this? > I thought it would be you? What did I miss? > > --- > > target/i386/cpu.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > Note: Not sure what tests I should be running in order to make sure I am > > not breaking any guest OSes. Usual qtests pass. > > > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c > > index 24ee67b42d..f3a5c99117 100644 > > --- a/target/i386/cpu.c > > +++ b/target/i386/cpu.c > > @@ -7375,7 +7375,7 @@ static void x86_cpu_realizefn(DeviceState *dev, > Error **errp) > > return; > > } > > > > - if (env->features[FEAT_1_EDX] & CPUID_PSE36) { > > + if (env->features[FEAT_1_EDX] & (CPUID_PSE36 | CPUID_PAE)) { > > cpu->phys_bits = 36; > > } else { > > cpu->phys_bits = 32; > > -- > > 2.39.1 > >
On Wed, Oct 18, 2023 at 11:08:11PM +0530, Ani Sinha wrote: > > > On Wed, 18 Oct, 2023, 5:35 pm Michael S. Tsirkin, <mst@redhat.com> wrote: > > On Tue, Sep 12, 2023 at 05:36:50PM +0530, Ani Sinha wrote: > > PAE mode in x86 supports 36 bit address space. Check the PAE CPUID on the > > guest processor and set phys_bits to 36 if PAE feature is set. This is in > > addition to checking the presence of PSE36 CPUID feature for setting 36 > bit > > phys_bits. > > > > Signed-off-by: Ani Sinha <anisinha@redhat.com> > > Acked-by: Michael S. Tsirkin <mst@redhat.com> > > who's applying this? > > > I thought it would be you? What did I miss? I just don't play a lot with CPUID flags and might easily miss things. Used to be Eduardo .. maybe CC him. > > > > --- > > target/i386/cpu.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > Note: Not sure what tests I should be running in order to make sure I am > > not breaking any guest OSes. Usual qtests pass. > > > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c > > index 24ee67b42d..f3a5c99117 100644 > > --- a/target/i386/cpu.c > > +++ b/target/i386/cpu.c > > @@ -7375,7 +7375,7 @@ static void x86_cpu_realizefn(DeviceState *dev, > Error **errp) > > return; > > } > > > > - if (env->features[FEAT_1_EDX] & CPUID_PSE36) { > > + if (env->features[FEAT_1_EDX] & (CPUID_PSE36 | CPUID_PAE)) { > > cpu->phys_bits = 36; > > } else { > > cpu->phys_bits = 32; > > -- > > 2.39.1 > >
On Wed, 18 Oct, 2023, 11:14 pm Michael S. Tsirkin, <mst@redhat.com> wrote: > On Wed, Oct 18, 2023 at 11:08:11PM +0530, Ani Sinha wrote: > > > > > > On Wed, 18 Oct, 2023, 5:35 pm Michael S. Tsirkin, <mst@redhat.com> > wrote: > > > > On Tue, Sep 12, 2023 at 05:36:50PM +0530, Ani Sinha wrote: > > > PAE mode in x86 supports 36 bit address space. Check the PAE CPUID > on the > > > guest processor and set phys_bits to 36 if PAE feature is set. > This is in > > > addition to checking the presence of PSE36 CPUID feature for > setting 36 > > bit > > > phys_bits. > > > > > > Signed-off-by: Ani Sinha <anisinha@redhat.com> > > > > Acked-by: Michael S. Tsirkin <mst@redhat.com> > > > > who's applying this? > > > > > > I thought it would be you? What did I miss? > > I just don't play a lot with CPUID flags and might easily miss things. > Used to be Eduardo .. maybe CC him. > Eduardo can you pick this up? > > > > > > > --- > > > target/i386/cpu.c | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > Note: Not sure what tests I should be running in order to make > sure I am > > > not breaking any guest OSes. Usual qtests pass. > > > > > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c > > > index 24ee67b42d..f3a5c99117 100644 > > > --- a/target/i386/cpu.c > > > +++ b/target/i386/cpu.c > > > @@ -7375,7 +7375,7 @@ static void x86_cpu_realizefn(DeviceState > *dev, > > Error **errp) > > > return; > > > } > > > > > > - if (env->features[FEAT_1_EDX] & CPUID_PSE36) { > > > + if (env->features[FEAT_1_EDX] & (CPUID_PSE36 | > CPUID_PAE)) { > > > cpu->phys_bits = 36; > > > } else { > > > cpu->phys_bits = 32; > > > -- > > > 2.39.1 > > > > > >
On Thu, 19 Oct, 2023, 7:36 am Ani Sinha, <anisinha@redhat.com> wrote: > > > On Wed, 18 Oct, 2023, 11:14 pm Michael S. Tsirkin, <mst@redhat.com> wrote: > >> On Wed, Oct 18, 2023 at 11:08:11PM +0530, Ani Sinha wrote: >> > >> > >> > On Wed, 18 Oct, 2023, 5:35 pm Michael S. Tsirkin, <mst@redhat.com> >> wrote: >> > >> > On Tue, Sep 12, 2023 at 05:36:50PM +0530, Ani Sinha wrote: >> > > PAE mode in x86 supports 36 bit address space. Check the PAE >> CPUID on the >> > > guest processor and set phys_bits to 36 if PAE feature is set. >> This is in >> > > addition to checking the presence of PSE36 CPUID feature for >> setting 36 >> > bit >> > > phys_bits. >> > > >> > > Signed-off-by: Ani Sinha <anisinha@redhat.com> >> > >> > Acked-by: Michael S. Tsirkin <mst@redhat.com> >> > >> > who's applying this? >> > >> > >> > I thought it would be you? What did I miss? >> >> I just don't play a lot with CPUID flags and might easily miss things. >> Used to be Eduardo .. maybe CC him. >> > > Eduardo can you pick this up? > If Eduardo doesn't respond I'll send a PR for this. > >> > >> > >> > > --- >> > > target/i386/cpu.c | 2 +- >> > > 1 file changed, 1 insertion(+), 1 deletion(-) >> > > >> > > Note: Not sure what tests I should be running in order to make >> sure I am >> > > not breaking any guest OSes. Usual qtests pass. >> > > >> > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c >> > > index 24ee67b42d..f3a5c99117 100644 >> > > --- a/target/i386/cpu.c >> > > +++ b/target/i386/cpu.c >> > > @@ -7375,7 +7375,7 @@ static void x86_cpu_realizefn(DeviceState >> *dev, >> > Error **errp) >> > > return; >> > > } >> > > >> > > - if (env->features[FEAT_1_EDX] & CPUID_PSE36) { >> > > + if (env->features[FEAT_1_EDX] & (CPUID_PSE36 | >> CPUID_PAE)) { >> > > cpu->phys_bits = 36; >> > > } else { >> > > cpu->phys_bits = 32; >> > > -- >> > > 2.39.1 >> > >> > >> >>
On 9/12/23 14:06, Ani Sinha wrote: > PAE mode in x86 supports 36 bit address space. Check the PAE CPUID on the > guest processor and set phys_bits to 36 if PAE feature is set. This is in > addition to checking the presence of PSE36 CPUID feature for setting 36 bit > phys_bits. > > Signed-off-by: Ani Sinha <anisinha@redhat.com> > --- > target/i386/cpu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > Note: Not sure what tests I should be running in order to make sure I am > not breaking any guest OSes. Usual qtests pass. Queued, thanks. Paolo > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c > index 24ee67b42d..f3a5c99117 100644 > --- a/target/i386/cpu.c > +++ b/target/i386/cpu.c > @@ -7375,7 +7375,7 @@ static void x86_cpu_realizefn(DeviceState *dev, Error **errp) > return; > } > > - if (env->features[FEAT_1_EDX] & CPUID_PSE36) { > + if (env->features[FEAT_1_EDX] & (CPUID_PSE36 | CPUID_PAE)) { > cpu->phys_bits = 36; > } else { > cpu->phys_bits = 32;
diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 24ee67b42d..f3a5c99117 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -7375,7 +7375,7 @@ static void x86_cpu_realizefn(DeviceState *dev, Error **errp) return; } - if (env->features[FEAT_1_EDX] & CPUID_PSE36) { + if (env->features[FEAT_1_EDX] & (CPUID_PSE36 | CPUID_PAE)) { cpu->phys_bits = 36; } else { cpu->phys_bits = 32;
PAE mode in x86 supports 36 bit address space. Check the PAE CPUID on the guest processor and set phys_bits to 36 if PAE feature is set. This is in addition to checking the presence of PSE36 CPUID feature for setting 36 bit phys_bits. Signed-off-by: Ani Sinha <anisinha@redhat.com> --- target/i386/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Note: Not sure what tests I should be running in order to make sure I am not breaking any guest OSes. Usual qtests pass.