diff mbox series

[kvm-unit-tests] x86: Mark APR as reserved in x2APIC

Message ID 20190625120627.8705-1-nadav.amit@gmail.com (mailing list archive)
State New, archived
Headers show
Series [kvm-unit-tests] x86: Mark APR as reserved in x2APIC | expand

Commit Message

Nadav Amit June 25, 2019, 12:06 p.m. UTC
Cc: Marc Orr <marcorr@google.com>
Signed-off-by: Nadav Amit <nadav.amit@gmail.com>
---
 lib/x86/apic.h | 1 +
 1 file changed, 1 insertion(+)

Comments

Krish Sadhukhan June 26, 2019, 10:32 p.m. UTC | #1
On 6/25/19 5:06 AM, Nadav Amit wrote:
> Cc: Marc Orr <marcorr@google.com>
> Signed-off-by: Nadav Amit <nadav.amit@gmail.com>
> ---
>   lib/x86/apic.h | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/lib/x86/apic.h b/lib/x86/apic.h
> index 537fdfb..b5bf208 100644
> --- a/lib/x86/apic.h
> +++ b/lib/x86/apic.h
> @@ -75,6 +75,7 @@ static inline bool x2apic_reg_reserved(u32 reg)
>   	switch (reg) {
>   	case 0x000 ... 0x010:
>   	case 0x040 ... 0x070:
> +	case 0x090:
>   	case 0x0c0:
>   	case 0x0e0:
>   	case 0x290 ... 0x2e0:


  0x02f0 which is also reserved, is missing from the above list.
Marc Orr June 27, 2019, 12:13 a.m. UTC | #2
On Tue, Jun 25, 2019 at 12:28 PM Nadav Amit <nadav.amit@gmail.com> wrote:
>
> Cc: Marc Orr <marcorr@google.com>
> Signed-off-by: Nadav Amit <nadav.amit@gmail.com>
> ---
>  lib/x86/apic.h | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/lib/x86/apic.h b/lib/x86/apic.h
> index 537fdfb..b5bf208 100644
> --- a/lib/x86/apic.h
> +++ b/lib/x86/apic.h
> @@ -75,6 +75,7 @@ static inline bool x2apic_reg_reserved(u32 reg)
>         switch (reg) {
>         case 0x000 ... 0x010:
>         case 0x040 ... 0x070:
> +       case 0x090:
>         case 0x0c0:
>         case 0x0e0:
>         case 0x290 ... 0x2e0:
> --
> 2.17.1
>

Reviewed-by: Marc Orr <marcorr@google.com>
Marc Orr June 27, 2019, 12:14 a.m. UTC | #3
On Wed, Jun 26, 2019 at 3:32 PM Krish Sadhukhan
<krish.sadhukhan@oracle.com> wrote:
>
>
> On 6/25/19 5:06 AM, Nadav Amit wrote:
> > Cc: Marc Orr <marcorr@google.com>
> > Signed-off-by: Nadav Amit <nadav.amit@gmail.com>
> > ---
> >   lib/x86/apic.h | 1 +
> >   1 file changed, 1 insertion(+)
> >
> > diff --git a/lib/x86/apic.h b/lib/x86/apic.h
> > index 537fdfb..b5bf208 100644
> > --- a/lib/x86/apic.h
> > +++ b/lib/x86/apic.h
> > @@ -75,6 +75,7 @@ static inline bool x2apic_reg_reserved(u32 reg)
> >       switch (reg) {
> >       case 0x000 ... 0x010:
> >       case 0x040 ... 0x070:
> > +     case 0x090:
> >       case 0x0c0:
> >       case 0x0e0:
> >       case 0x290 ... 0x2e0:
>
>
>   0x02f0 which is also reserved, is missing from the above list.

0x02f0 is "LVT CMCI register", right?
Krish Sadhukhan June 27, 2019, 1:11 a.m. UTC | #4
On 6/26/19 5:14 PM, Marc Orr wrote:
> On Wed, Jun 26, 2019 at 3:32 PM Krish Sadhukhan
> <krish.sadhukhan@oracle.com> wrote:
>>
>> On 6/25/19 5:06 AM, Nadav Amit wrote:
>>> Cc: Marc Orr <marcorr@google.com>
>>> Signed-off-by: Nadav Amit <nadav.amit@gmail.com>
>>> ---
>>>    lib/x86/apic.h | 1 +
>>>    1 file changed, 1 insertion(+)
>>>
>>> diff --git a/lib/x86/apic.h b/lib/x86/apic.h
>>> index 537fdfb..b5bf208 100644
>>> --- a/lib/x86/apic.h
>>> +++ b/lib/x86/apic.h
>>> @@ -75,6 +75,7 @@ static inline bool x2apic_reg_reserved(u32 reg)
>>>        switch (reg) {
>>>        case 0x000 ... 0x010:
>>>        case 0x040 ... 0x070:
>>> +     case 0x090:
>>>        case 0x0c0:
>>>        case 0x0e0:
>>>        case 0x290 ... 0x2e0:
>>
>>    0x02f0 which is also reserved, is missing from the above list.
> 0x02f0 is "LVT CMCI register", right?


That's right.
Nadav Amit June 27, 2019, 6:19 p.m. UTC | #5
> On Jun 26, 2019, at 3:32 PM, Krish Sadhukhan <krish.sadhukhan@oracle.com> wrote:
> 
> 
> On 6/25/19 5:06 AM, Nadav Amit wrote:
>> Cc: Marc Orr <marcorr@google.com>
>> Signed-off-by: Nadav Amit <nadav.amit@gmail.com>
>> ---
>>  lib/x86/apic.h | 1 +
>>  1 file changed, 1 insertion(+)
>> 
>> diff --git a/lib/x86/apic.h b/lib/x86/apic.h
>> index 537fdfb..b5bf208 100644
>> --- a/lib/x86/apic.h
>> +++ b/lib/x86/apic.h
>> @@ -75,6 +75,7 @@ static inline bool x2apic_reg_reserved(u32 reg)
>>  	switch (reg) {
>>  	case 0x000 ... 0x010:
>>  	case 0x040 ... 0x070:
>> +	case 0x090:
>>  	case 0x0c0:
>>  	case 0x0e0:
>>  	case 0x290 ... 0x2e0:
> 
> 
>  0x02f0 which is also reserved, is missing from the above list.

I tried adding it, and I get on bare-metal:

  FAIL: x2apic - reading 0x2f0: x2APIC op triggered GP.

And actually, the SDM table 10-6 “Local APIC Register Address Map Supported
by x2APIC” also shows this register (LVT CMCI) as "Read/write”. So I don’t
know why you say it is reserved.
Krish Sadhukhan June 27, 2019, 10:03 p.m. UTC | #6
On 06/27/2019 11:19 AM, Nadav Amit wrote:
>> On Jun 26, 2019, at 3:32 PM, Krish Sadhukhan <krish.sadhukhan@oracle.com> wrote:
>>
>>
>> On 6/25/19 5:06 AM, Nadav Amit wrote:
>>> Cc: Marc Orr <marcorr@google.com>
>>> Signed-off-by: Nadav Amit <nadav.amit@gmail.com>
>>> ---
>>>   lib/x86/apic.h | 1 +
>>>   1 file changed, 1 insertion(+)
>>>
>>> diff --git a/lib/x86/apic.h b/lib/x86/apic.h
>>> index 537fdfb..b5bf208 100644
>>> --- a/lib/x86/apic.h
>>> +++ b/lib/x86/apic.h
>>> @@ -75,6 +75,7 @@ static inline bool x2apic_reg_reserved(u32 reg)
>>>   	switch (reg) {
>>>   	case 0x000 ... 0x010:
>>>   	case 0x040 ... 0x070:
>>> +	case 0x090:
>>>   	case 0x0c0:
>>>   	case 0x0e0:
>>>   	case 0x290 ... 0x2e0:
>>
>>   0x02f0 which is also reserved, is missing from the above list.
> I tried adding it, and I get on bare-metal:
>
>    FAIL: x2apic - reading 0x2f0: x2APIC op triggered GP.
>
> And actually, the SDM table 10-6 “Local APIC Register Address Map Supported
> by x2APIC” also shows this register (LVT CMCI) as "Read/write”. So I don’t
> know why you say it is reserved.
>

Sorry, my bad !  I was looking at an older version (318148) of the SDM 
in which it was showing as reserved.

We are good.

Reviewed-by: Krish Sadhukhan <krish.sadhukhan@oracle.com>
Paolo Bonzini July 2, 2019, 3:55 p.m. UTC | #7
On 25/06/19 14:06, Nadav Amit wrote:
> Cc: Marc Orr <marcorr@google.com>
> Signed-off-by: Nadav Amit <nadav.amit@gmail.com>
> ---
>  lib/x86/apic.h | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/lib/x86/apic.h b/lib/x86/apic.h
> index 537fdfb..b5bf208 100644
> --- a/lib/x86/apic.h
> +++ b/lib/x86/apic.h
> @@ -75,6 +75,7 @@ static inline bool x2apic_reg_reserved(u32 reg)
>  	switch (reg) {
>  	case 0x000 ... 0x010:
>  	case 0x040 ... 0x070:
> +	case 0x090:
>  	case 0x0c0:
>  	case 0x0e0:
>  	case 0x290 ... 0x2e0:
> 

Queued, thanks.

Paolo
diff mbox series

Patch

diff --git a/lib/x86/apic.h b/lib/x86/apic.h
index 537fdfb..b5bf208 100644
--- a/lib/x86/apic.h
+++ b/lib/x86/apic.h
@@ -75,6 +75,7 @@  static inline bool x2apic_reg_reserved(u32 reg)
 	switch (reg) {
 	case 0x000 ... 0x010:
 	case 0x040 ... 0x070:
+	case 0x090:
 	case 0x0c0:
 	case 0x0e0:
 	case 0x290 ... 0x2e0: