* [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device
@ 2015-12-09 14:32 Boris Ostrovsky
2015-12-09 14:42 ` Jan Beulich
` (2 more replies)
0 siblings, 3 replies; 15+ messages in thread
From: Boris Ostrovsky @ 2015-12-09 14:32 UTC (permalink / raw)
To: tglx, mingo, hpa
Cc: x86, linux-kernel, vkuznets, linux, xen-devel, Boris Ostrovsky,
David Vrabel, stable
Adding the rtc platform device in a Xen PV guests causes an IRQ
conflict because these guests do not have a legacy PIC.
In a single VCPU Xen PV guest we should have:
/proc/interrupts:
CPU0
0: 4934 xen-percpu-virq timer0
1: 0 xen-percpu-ipi spinlock0
2: 0 xen-percpu-ipi resched0
3: 0 xen-percpu-ipi callfunc0
4: 0 xen-percpu-virq debug0
5: 0 xen-percpu-ipi callfuncsingle0
6: 0 xen-percpu-ipi irqwork0
7: 321 xen-dyn-event xenbus
8: 90 xen-dyn-event hvc_console
...
But hvc_console cannot get its interrupt because it is already in use
by rtc0 and the console does not work.
genirq: Flags mismatch irq 8. 00000000 (hvc_console) vs. 00000000 (rtc0)
So don't add the rtc_cmos device in Xen PV guests. (In fact, don't add
it to any paravirt_enabled() guest since lguest is also unable to probe
this device)
Reported-by: Sander Eikelenboom <linux@eikelenboom.it>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Tested-by: Sander Eikelenboom <linux@eikelenboom.it>
Cc: stable@vger.kernel.org
---
arch/x86/kernel/rtc.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c
index cd96852..dd4d6d9 100644
--- a/arch/x86/kernel/rtc.c
+++ b/arch/x86/kernel/rtc.c
@@ -200,6 +200,9 @@ static __init int add_rtc_cmos(void)
}
#endif
+ if (paravirt_enabled())
+ return -ENODEV;
+
platform_device_register(&rtc_device);
dev_info(&rtc_device.dev,
"registered platform RTC device (no PNP device found)\n");
--
1.8.1.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [Xen-devel] [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device
2015-12-09 14:32 [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device Boris Ostrovsky
2015-12-09 14:42 ` Jan Beulich
@ 2015-12-09 14:42 ` Jan Beulich
2015-12-09 15:00 ` Sander Eikelenboom
2015-12-09 15:00 ` Sander Eikelenboom
2015-12-09 14:44 ` Konrad Rzeszutek Wilk
2 siblings, 2 replies; 15+ messages in thread
From: Jan Beulich @ 2015-12-09 14:42 UTC (permalink / raw)
To: Boris Ostrovsky
Cc: David Vrabel, linux, x86, tglx, xen-devel, mingo, vkuznets,
linux-kernel, stable, hpa
>>> On 09.12.15 at 15:32, <boris.ostrovsky@oracle.com> wrote:
> --- a/arch/x86/kernel/rtc.c
> +++ b/arch/x86/kernel/rtc.c
> @@ -200,6 +200,9 @@ static __init int add_rtc_cmos(void)
> }
> #endif
>
> + if (paravirt_enabled())
> + return -ENODEV;
What about Xen Dom0?
Jan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device
2015-12-09 14:32 [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device Boris Ostrovsky
@ 2015-12-09 14:42 ` Jan Beulich
2015-12-09 14:42 ` [Xen-devel] " Jan Beulich
2015-12-09 14:44 ` Konrad Rzeszutek Wilk
2 siblings, 0 replies; 15+ messages in thread
From: Jan Beulich @ 2015-12-09 14:42 UTC (permalink / raw)
To: Boris Ostrovsky
Cc: x86, linux-kernel, stable, linux, mingo, David Vrabel, hpa,
xen-devel, tglx, vkuznets
>>> On 09.12.15 at 15:32, <boris.ostrovsky@oracle.com> wrote:
> --- a/arch/x86/kernel/rtc.c
> +++ b/arch/x86/kernel/rtc.c
> @@ -200,6 +200,9 @@ static __init int add_rtc_cmos(void)
> }
> #endif
>
> + if (paravirt_enabled())
> + return -ENODEV;
What about Xen Dom0?
Jan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device
2015-12-09 14:32 [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device Boris Ostrovsky
2015-12-09 14:42 ` Jan Beulich
2015-12-09 14:42 ` [Xen-devel] " Jan Beulich
@ 2015-12-09 14:44 ` Konrad Rzeszutek Wilk
2 siblings, 0 replies; 15+ messages in thread
From: Konrad Rzeszutek Wilk @ 2015-12-09 14:44 UTC (permalink / raw)
To: Boris Ostrovsky
Cc: x86, linux-kernel, stable, linux, mingo, David Vrabel, hpa,
xen-devel, tglx, vkuznets
On Wed, Dec 09, 2015 at 09:32:49AM -0500, Boris Ostrovsky wrote:
> Adding the rtc platform device in a Xen PV guests causes an IRQ
> conflict because these guests do not have a legacy PIC.
>
> In a single VCPU Xen PV guest we should have:
>
> /proc/interrupts:
> CPU0
> 0: 4934 xen-percpu-virq timer0
> 1: 0 xen-percpu-ipi spinlock0
> 2: 0 xen-percpu-ipi resched0
> 3: 0 xen-percpu-ipi callfunc0
> 4: 0 xen-percpu-virq debug0
> 5: 0 xen-percpu-ipi callfuncsingle0
> 6: 0 xen-percpu-ipi irqwork0
> 7: 321 xen-dyn-event xenbus
> 8: 90 xen-dyn-event hvc_console
> ...
>
> But hvc_console cannot get its interrupt because it is already in use
> by rtc0 and the console does not work.
>
> genirq: Flags mismatch irq 8. 00000000 (hvc_console) vs. 00000000 (rtc0)
>
> So don't add the rtc_cmos device in Xen PV guests. (In fact, don't add
> it to any paravirt_enabled() guest since lguest is also unable to probe
> this device)
>
> Reported-by: Sander Eikelenboom <linux@eikelenboom.it>
> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
> Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
> Tested-by: Sander Eikelenboom <linux@eikelenboom.it>
> Cc: stable@vger.kernel.org
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
You may want to also add a note saying:
[stable-tree maintainers. Please double-check that you also have
29fa6825463c97e5157284db80107d1bfac5d77b x86, kvm: Clear paravirt_enabled on KVM guests for espfix32's benefit
which sets pv_info.paravirt_enabled to zero.]
> ---
> arch/x86/kernel/rtc.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c
> index cd96852..dd4d6d9 100644
> --- a/arch/x86/kernel/rtc.c
> +++ b/arch/x86/kernel/rtc.c
> @@ -200,6 +200,9 @@ static __init int add_rtc_cmos(void)
> }
> #endif
>
> + if (paravirt_enabled())
> + return -ENODEV;
> +
> platform_device_register(&rtc_device);
> dev_info(&rtc_device.dev,
> "registered platform RTC device (no PNP device found)\n");
> --
> 1.8.1.4
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Xen-devel] [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device
2015-12-09 14:42 ` [Xen-devel] " Jan Beulich
@ 2015-12-09 15:00 ` Sander Eikelenboom
2015-12-09 15:15 ` Boris Ostrovsky
` (3 more replies)
2015-12-09 15:00 ` Sander Eikelenboom
1 sibling, 4 replies; 15+ messages in thread
From: Sander Eikelenboom @ 2015-12-09 15:00 UTC (permalink / raw)
To: Jan Beulich
Cc: Boris Ostrovsky, David Vrabel, x86, tglx, xen-devel, mingo,
vkuznets, linux-kernel, stable, hpa
On 2015-12-09 15:42, Jan Beulich wrote:
>>>> On 09.12.15 at 15:32, <boris.ostrovsky@oracle.com> wrote:
>> --- a/arch/x86/kernel/rtc.c
>> +++ b/arch/x86/kernel/rtc.c
>> @@ -200,6 +200,9 @@ static __init int add_rtc_cmos(void)
>> }
>> #endif
>>
>> + if (paravirt_enabled())
>> + return -ENODEV;
>
> What about Xen Dom0?
>
> Jan
Checked that in my testing and that still worked:
[ 16.733837] rtc_cmos 00:02: RTC can wake from S4
[ 16.734030] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
[ 16.734087] rtc_cmos 00:02: alarms up to one month, y3k, 114 bytes
nvram
[ 17.760329] rtc_cmos 00:02: setting system clock to 2015-12-09
08:43:48 UTC (1449650628)
and /dev/rtc and /dev/rtc0 both exist.
But i don't know the nitty gritty details about why ...
--
Sander
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device
2015-12-09 14:42 ` [Xen-devel] " Jan Beulich
2015-12-09 15:00 ` Sander Eikelenboom
@ 2015-12-09 15:00 ` Sander Eikelenboom
1 sibling, 0 replies; 15+ messages in thread
From: Sander Eikelenboom @ 2015-12-09 15:00 UTC (permalink / raw)
To: Jan Beulich
Cc: x86, linux-kernel, stable, vkuznets, mingo, David Vrabel, hpa,
xen-devel, Boris Ostrovsky, tglx
On 2015-12-09 15:42, Jan Beulich wrote:
>>>> On 09.12.15 at 15:32, <boris.ostrovsky@oracle.com> wrote:
>> --- a/arch/x86/kernel/rtc.c
>> +++ b/arch/x86/kernel/rtc.c
>> @@ -200,6 +200,9 @@ static __init int add_rtc_cmos(void)
>> }
>> #endif
>>
>> + if (paravirt_enabled())
>> + return -ENODEV;
>
> What about Xen Dom0?
>
> Jan
Checked that in my testing and that still worked:
[ 16.733837] rtc_cmos 00:02: RTC can wake from S4
[ 16.734030] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
[ 16.734087] rtc_cmos 00:02: alarms up to one month, y3k, 114 bytes
nvram
[ 17.760329] rtc_cmos 00:02: setting system clock to 2015-12-09
08:43:48 UTC (1449650628)
and /dev/rtc and /dev/rtc0 both exist.
But i don't know the nitty gritty details about why ...
--
Sander
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Xen-devel] [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device
2015-12-09 15:00 ` Sander Eikelenboom
2015-12-09 15:15 ` Boris Ostrovsky
@ 2015-12-09 15:15 ` Boris Ostrovsky
2015-12-09 15:27 ` Jan Beulich
2015-12-09 15:27 ` [Xen-devel] " Jan Beulich
2015-12-09 15:23 ` Vitaly Kuznetsov
2015-12-09 15:23 ` [Xen-devel] " Vitaly Kuznetsov
3 siblings, 2 replies; 15+ messages in thread
From: Boris Ostrovsky @ 2015-12-09 15:15 UTC (permalink / raw)
To: Sander Eikelenboom, Jan Beulich
Cc: David Vrabel, x86, tglx, xen-devel, mingo, vkuznets,
linux-kernel, stable, hpa
On 12/09/2015 10:00 AM, Sander Eikelenboom wrote:
> On 2015-12-09 15:42, Jan Beulich wrote:
>>>>> On 09.12.15 at 15:32, <boris.ostrovsky@oracle.com> wrote:
>>> --- a/arch/x86/kernel/rtc.c
>>> +++ b/arch/x86/kernel/rtc.c
>>> @@ -200,6 +200,9 @@ static __init int add_rtc_cmos(void)
>>> }
>>> #endif
>>>
>>> + if (paravirt_enabled())
>>> + return -ENODEV;
>>
>> What about Xen Dom0?
>>
>> Jan
>
> Checked that in my testing and that still worked:
> [ 16.733837] rtc_cmos 00:02: RTC can wake from S4
> [ 16.734030] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
> [ 16.734087] rtc_cmos 00:02: alarms up to one month, y3k, 114 bytes
> nvram
> [ 17.760329] rtc_cmos 00:02: setting system clock to 2015-12-09
> 08:43:48 UTC (1449650628)
>
> and /dev/rtc and /dev/rtc0 both exist.
>
> But i don't know the nitty gritty details about why ...
That's because it is discovered by ACPI earlier. I don't know though
whether we can always assume this will be the case.
-boris
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device
2015-12-09 15:00 ` Sander Eikelenboom
@ 2015-12-09 15:15 ` Boris Ostrovsky
2015-12-09 15:15 ` [Xen-devel] " Boris Ostrovsky
` (2 subsequent siblings)
3 siblings, 0 replies; 15+ messages in thread
From: Boris Ostrovsky @ 2015-12-09 15:15 UTC (permalink / raw)
To: Sander Eikelenboom, Jan Beulich
Cc: x86, linux-kernel, stable, mingo, David Vrabel, hpa, xen-devel,
tglx, vkuznets
On 12/09/2015 10:00 AM, Sander Eikelenboom wrote:
> On 2015-12-09 15:42, Jan Beulich wrote:
>>>>> On 09.12.15 at 15:32, <boris.ostrovsky@oracle.com> wrote:
>>> --- a/arch/x86/kernel/rtc.c
>>> +++ b/arch/x86/kernel/rtc.c
>>> @@ -200,6 +200,9 @@ static __init int add_rtc_cmos(void)
>>> }
>>> #endif
>>>
>>> + if (paravirt_enabled())
>>> + return -ENODEV;
>>
>> What about Xen Dom0?
>>
>> Jan
>
> Checked that in my testing and that still worked:
> [ 16.733837] rtc_cmos 00:02: RTC can wake from S4
> [ 16.734030] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
> [ 16.734087] rtc_cmos 00:02: alarms up to one month, y3k, 114 bytes
> nvram
> [ 17.760329] rtc_cmos 00:02: setting system clock to 2015-12-09
> 08:43:48 UTC (1449650628)
>
> and /dev/rtc and /dev/rtc0 both exist.
>
> But i don't know the nitty gritty details about why ...
That's because it is discovered by ACPI earlier. I don't know though
whether we can always assume this will be the case.
-boris
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Xen-devel] [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device
2015-12-09 15:00 ` Sander Eikelenboom
` (2 preceding siblings ...)
2015-12-09 15:23 ` Vitaly Kuznetsov
@ 2015-12-09 15:23 ` Vitaly Kuznetsov
3 siblings, 0 replies; 15+ messages in thread
From: Vitaly Kuznetsov @ 2015-12-09 15:23 UTC (permalink / raw)
To: Sander Eikelenboom
Cc: Jan Beulich, Boris Ostrovsky, David Vrabel, x86, tglx, xen-devel,
mingo, linux-kernel, stable, hpa
Sander Eikelenboom <linux@eikelenboom.it> writes:
> On 2015-12-09 15:42, Jan Beulich wrote:
>>>>> On 09.12.15 at 15:32, <boris.ostrovsky@oracle.com> wrote:
>>> --- a/arch/x86/kernel/rtc.c
>>> +++ b/arch/x86/kernel/rtc.c
>>> @@ -200,6 +200,9 @@ static __init int add_rtc_cmos(void)
>>> }
>>> #endif
>>>
>>> + if (paravirt_enabled())
>>> + return -ENODEV;
>>
>> What about Xen Dom0?
>>
>> Jan
>
> Checked that in my testing and that still worked:
> [ 16.733837] rtc_cmos 00:02: RTC can wake from S4
> [ 16.734030] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
> [ 16.734087] rtc_cmos 00:02: alarms up to one month, y3k, 114 bytes
> nvram
> [ 17.760329] rtc_cmos 00:02: setting system clock to 2015-12-09
> 08:43:48 UTC (1449650628)
>
> and /dev/rtc and /dev/rtc0 both exist.
>
> But i don't know the nitty gritty details about why ...
As far as I can see in Dom0 the device is present in ACPI as PNP0B00 so
a different path is probably in use.
--
Vitaly
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device
2015-12-09 15:00 ` Sander Eikelenboom
2015-12-09 15:15 ` Boris Ostrovsky
2015-12-09 15:15 ` [Xen-devel] " Boris Ostrovsky
@ 2015-12-09 15:23 ` Vitaly Kuznetsov
2015-12-09 15:23 ` [Xen-devel] " Vitaly Kuznetsov
3 siblings, 0 replies; 15+ messages in thread
From: Vitaly Kuznetsov @ 2015-12-09 15:23 UTC (permalink / raw)
To: Sander Eikelenboom
Cc: x86, linux-kernel, stable, mingo, David Vrabel, Jan Beulich, hpa,
xen-devel, Boris Ostrovsky, tglx
Sander Eikelenboom <linux@eikelenboom.it> writes:
> On 2015-12-09 15:42, Jan Beulich wrote:
>>>>> On 09.12.15 at 15:32, <boris.ostrovsky@oracle.com> wrote:
>>> --- a/arch/x86/kernel/rtc.c
>>> +++ b/arch/x86/kernel/rtc.c
>>> @@ -200,6 +200,9 @@ static __init int add_rtc_cmos(void)
>>> }
>>> #endif
>>>
>>> + if (paravirt_enabled())
>>> + return -ENODEV;
>>
>> What about Xen Dom0?
>>
>> Jan
>
> Checked that in my testing and that still worked:
> [ 16.733837] rtc_cmos 00:02: RTC can wake from S4
> [ 16.734030] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
> [ 16.734087] rtc_cmos 00:02: alarms up to one month, y3k, 114 bytes
> nvram
> [ 17.760329] rtc_cmos 00:02: setting system clock to 2015-12-09
> 08:43:48 UTC (1449650628)
>
> and /dev/rtc and /dev/rtc0 both exist.
>
> But i don't know the nitty gritty details about why ...
As far as I can see in Dom0 the device is present in ACPI as PNP0B00 so
a different path is probably in use.
--
Vitaly
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Xen-devel] [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device
2015-12-09 15:15 ` [Xen-devel] " Boris Ostrovsky
2015-12-09 15:27 ` Jan Beulich
@ 2015-12-09 15:27 ` Jan Beulich
2015-12-09 18:18 ` Boris Ostrovsky
2015-12-09 18:18 ` Boris Ostrovsky
1 sibling, 2 replies; 15+ messages in thread
From: Jan Beulich @ 2015-12-09 15:27 UTC (permalink / raw)
To: Sander Eikelenboom, Boris Ostrovsky
Cc: David Vrabel, x86, tglx, xen-devel, mingo, vkuznets,
linux-kernel, stable, hpa
>>> On 09.12.15 at 16:15, <boris.ostrovsky@oracle.com> wrote:
> On 12/09/2015 10:00 AM, Sander Eikelenboom wrote:
>> On 2015-12-09 15:42, Jan Beulich wrote:
>>>>>> On 09.12.15 at 15:32, <boris.ostrovsky@oracle.com> wrote:
>>>> --- a/arch/x86/kernel/rtc.c
>>>> +++ b/arch/x86/kernel/rtc.c
>>>> @@ -200,6 +200,9 @@ static __init int add_rtc_cmos(void)
>>>> }
>>>> #endif
>>>>
>>>> + if (paravirt_enabled())
>>>> + return -ENODEV;
>>>
>>> What about Xen Dom0?
>>>
>>> Jan
>>
>> Checked that in my testing and that still worked:
>> [ 16.733837] rtc_cmos 00:02: RTC can wake from S4
>> [ 16.734030] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
>> [ 16.734087] rtc_cmos 00:02: alarms up to one month, y3k, 114 bytes
>> nvram
>> [ 17.760329] rtc_cmos 00:02: setting system clock to 2015-12-09
>> 08:43:48 UTC (1449650628)
>>
>> and /dev/rtc and /dev/rtc0 both exist.
>>
>> But i don't know the nitty gritty details about why ...
>
>
> That's because it is discovered by ACPI earlier. I don't know though
> whether we can always assume this will be the case.
I don't think we should - Dom0 should (device-wise) behave just
like a native kernel.
Jan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device
2015-12-09 15:15 ` [Xen-devel] " Boris Ostrovsky
@ 2015-12-09 15:27 ` Jan Beulich
2015-12-09 15:27 ` [Xen-devel] " Jan Beulich
1 sibling, 0 replies; 15+ messages in thread
From: Jan Beulich @ 2015-12-09 15:27 UTC (permalink / raw)
To: Sander Eikelenboom, Boris Ostrovsky
Cc: x86, linux-kernel, stable, mingo, David Vrabel, hpa, xen-devel,
tglx, vkuznets
>>> On 09.12.15 at 16:15, <boris.ostrovsky@oracle.com> wrote:
> On 12/09/2015 10:00 AM, Sander Eikelenboom wrote:
>> On 2015-12-09 15:42, Jan Beulich wrote:
>>>>>> On 09.12.15 at 15:32, <boris.ostrovsky@oracle.com> wrote:
>>>> --- a/arch/x86/kernel/rtc.c
>>>> +++ b/arch/x86/kernel/rtc.c
>>>> @@ -200,6 +200,9 @@ static __init int add_rtc_cmos(void)
>>>> }
>>>> #endif
>>>>
>>>> + if (paravirt_enabled())
>>>> + return -ENODEV;
>>>
>>> What about Xen Dom0?
>>>
>>> Jan
>>
>> Checked that in my testing and that still worked:
>> [ 16.733837] rtc_cmos 00:02: RTC can wake from S4
>> [ 16.734030] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
>> [ 16.734087] rtc_cmos 00:02: alarms up to one month, y3k, 114 bytes
>> nvram
>> [ 17.760329] rtc_cmos 00:02: setting system clock to 2015-12-09
>> 08:43:48 UTC (1449650628)
>>
>> and /dev/rtc and /dev/rtc0 both exist.
>>
>> But i don't know the nitty gritty details about why ...
>
>
> That's because it is discovered by ACPI earlier. I don't know though
> whether we can always assume this will be the case.
I don't think we should - Dom0 should (device-wise) behave just
like a native kernel.
Jan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Xen-devel] [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device
2015-12-09 15:27 ` [Xen-devel] " Jan Beulich
@ 2015-12-09 18:18 ` Boris Ostrovsky
2015-12-09 18:18 ` Boris Ostrovsky
1 sibling, 0 replies; 15+ messages in thread
From: Boris Ostrovsky @ 2015-12-09 18:18 UTC (permalink / raw)
To: Jan Beulich, Sander Eikelenboom
Cc: David Vrabel, x86, tglx, xen-devel, mingo, vkuznets,
linux-kernel, stable, hpa
On 12/09/2015 10:27 AM, Jan Beulich wrote:
>>>> On 09.12.15 at 16:15, <boris.ostrovsky@oracle.com> wrote:
>> On 12/09/2015 10:00 AM, Sander Eikelenboom wrote:
>>> On 2015-12-09 15:42, Jan Beulich wrote:
>>>>>>> On 09.12.15 at 15:32, <boris.ostrovsky@oracle.com> wrote:
>>>>> --- a/arch/x86/kernel/rtc.c
>>>>> +++ b/arch/x86/kernel/rtc.c
>>>>> @@ -200,6 +200,9 @@ static __init int add_rtc_cmos(void)
>>>>> }
>>>>> #endif
>>>>>
>>>>> + if (paravirt_enabled())
>>>>> + return -ENODEV;
>>>> What about Xen Dom0?
>>>>
>>>> Jan
>>> Checked that in my testing and that still worked:
>>> [ 16.733837] rtc_cmos 00:02: RTC can wake from S4
>>> [ 16.734030] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
>>> [ 16.734087] rtc_cmos 00:02: alarms up to one month, y3k, 114 bytes
>>> nvram
>>> [ 17.760329] rtc_cmos 00:02: setting system clock to 2015-12-09
>>> 08:43:48 UTC (1449650628)
>>>
>>> and /dev/rtc and /dev/rtc0 both exist.
>>>
>>> But i don't know the nitty gritty details about why ...
>>
>> That's because it is discovered by ACPI earlier. I don't know though
>> whether we can always assume this will be the case.
> I don't think we should - Dom0 should (device-wise) behave just
> like a native kernel.
So maybe then this is the case for having a feature flag (probably in
pv_info) that marks which features are paravirtualized.
Vitaly suggested it earlier but I thought we won't have use for it until
we get to HVMlite with variable set of fetures.
-boris
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device
2015-12-09 15:27 ` [Xen-devel] " Jan Beulich
2015-12-09 18:18 ` Boris Ostrovsky
@ 2015-12-09 18:18 ` Boris Ostrovsky
1 sibling, 0 replies; 15+ messages in thread
From: Boris Ostrovsky @ 2015-12-09 18:18 UTC (permalink / raw)
To: Jan Beulich, Sander Eikelenboom
Cc: x86, linux-kernel, stable, mingo, David Vrabel, hpa, xen-devel,
tglx, vkuznets
On 12/09/2015 10:27 AM, Jan Beulich wrote:
>>>> On 09.12.15 at 16:15, <boris.ostrovsky@oracle.com> wrote:
>> On 12/09/2015 10:00 AM, Sander Eikelenboom wrote:
>>> On 2015-12-09 15:42, Jan Beulich wrote:
>>>>>>> On 09.12.15 at 15:32, <boris.ostrovsky@oracle.com> wrote:
>>>>> --- a/arch/x86/kernel/rtc.c
>>>>> +++ b/arch/x86/kernel/rtc.c
>>>>> @@ -200,6 +200,9 @@ static __init int add_rtc_cmos(void)
>>>>> }
>>>>> #endif
>>>>>
>>>>> + if (paravirt_enabled())
>>>>> + return -ENODEV;
>>>> What about Xen Dom0?
>>>>
>>>> Jan
>>> Checked that in my testing and that still worked:
>>> [ 16.733837] rtc_cmos 00:02: RTC can wake from S4
>>> [ 16.734030] rtc_cmos 00:02: rtc core: registered rtc_cmos as rtc0
>>> [ 16.734087] rtc_cmos 00:02: alarms up to one month, y3k, 114 bytes
>>> nvram
>>> [ 17.760329] rtc_cmos 00:02: setting system clock to 2015-12-09
>>> 08:43:48 UTC (1449650628)
>>>
>>> and /dev/rtc and /dev/rtc0 both exist.
>>>
>>> But i don't know the nitty gritty details about why ...
>>
>> That's because it is discovered by ACPI earlier. I don't know though
>> whether we can always assume this will be the case.
> I don't think we should - Dom0 should (device-wise) behave just
> like a native kernel.
So maybe then this is the case for having a feature flag (probably in
pv_info) that marks which features are paravirtualized.
Vitaly suggested it earlier but I thought we won't have use for it until
we get to HVMlite with variable set of fetures.
-boris
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device
@ 2015-12-09 14:32 Boris Ostrovsky
0 siblings, 0 replies; 15+ messages in thread
From: Boris Ostrovsky @ 2015-12-09 14:32 UTC (permalink / raw)
To: tglx, mingo, hpa
Cc: x86, linux-kernel, stable, linux, David Vrabel, xen-devel,
Boris Ostrovsky, vkuznets
Adding the rtc platform device in a Xen PV guests causes an IRQ
conflict because these guests do not have a legacy PIC.
In a single VCPU Xen PV guest we should have:
/proc/interrupts:
CPU0
0: 4934 xen-percpu-virq timer0
1: 0 xen-percpu-ipi spinlock0
2: 0 xen-percpu-ipi resched0
3: 0 xen-percpu-ipi callfunc0
4: 0 xen-percpu-virq debug0
5: 0 xen-percpu-ipi callfuncsingle0
6: 0 xen-percpu-ipi irqwork0
7: 321 xen-dyn-event xenbus
8: 90 xen-dyn-event hvc_console
...
But hvc_console cannot get its interrupt because it is already in use
by rtc0 and the console does not work.
genirq: Flags mismatch irq 8. 00000000 (hvc_console) vs. 00000000 (rtc0)
So don't add the rtc_cmos device in Xen PV guests. (In fact, don't add
it to any paravirt_enabled() guest since lguest is also unable to probe
this device)
Reported-by: Sander Eikelenboom <linux@eikelenboom.it>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Tested-by: Sander Eikelenboom <linux@eikelenboom.it>
Cc: stable@vger.kernel.org
---
arch/x86/kernel/rtc.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/x86/kernel/rtc.c b/arch/x86/kernel/rtc.c
index cd96852..dd4d6d9 100644
--- a/arch/x86/kernel/rtc.c
+++ b/arch/x86/kernel/rtc.c
@@ -200,6 +200,9 @@ static __init int add_rtc_cmos(void)
}
#endif
+ if (paravirt_enabled())
+ return -ENODEV;
+
platform_device_register(&rtc_device);
dev_info(&rtc_device.dev,
"registered platform RTC device (no PNP device found)\n");
--
1.8.1.4
^ permalink raw reply related [flat|nested] 15+ messages in thread
end of thread, other threads:[~2015-12-09 18:19 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-09 14:32 [PATCH] x86: Xen PV guests don't have the rtc_cmos platform device Boris Ostrovsky
2015-12-09 14:42 ` Jan Beulich
2015-12-09 14:42 ` [Xen-devel] " Jan Beulich
2015-12-09 15:00 ` Sander Eikelenboom
2015-12-09 15:15 ` Boris Ostrovsky
2015-12-09 15:15 ` [Xen-devel] " Boris Ostrovsky
2015-12-09 15:27 ` Jan Beulich
2015-12-09 15:27 ` [Xen-devel] " Jan Beulich
2015-12-09 18:18 ` Boris Ostrovsky
2015-12-09 18:18 ` Boris Ostrovsky
2015-12-09 15:23 ` Vitaly Kuznetsov
2015-12-09 15:23 ` [Xen-devel] " Vitaly Kuznetsov
2015-12-09 15:00 ` Sander Eikelenboom
2015-12-09 14:44 ` Konrad Rzeszutek Wilk
2015-12-09 14:32 Boris Ostrovsky
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.