diff mbox

[v7,3/4] s390x: Migrate to new NMI interface

Message ID 1402630619-4408-4-git-send-email-aik@ozlabs.ru
State New
Headers show

Commit Message

Alexey Kardashevskiy June 13, 2014, 3:36 a.m. UTC
This implements an NMI interface for s390 and s390-ccw machines.

This removes #ifdef s390 branch in qmp_inject_nmi so new s390's
nmi_monitor_handler() callback is going to be used for NMI.

Since nmi_monitor_handler()-calling code is platform independent,
CPUState::cpu_index is used instead of S390CPU::env.cpu_num.
There should not be any change in behaviour as both @cpu_index and
@cpu_num are global CPU numbers.

Also, s390_cpu_restart() takes care of preforming operations in
the specific CPU thread so no extra measure is required here either.

Since the only error s390_cpu_restart() can return is ENOSYS, convert
it to QERR_UNSUPPORTED.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
---
Changes:
v7:
* since now s390' are QOM'ed, add interface to them and do not create
new object

v6:
* supported NMI interface

v5:
* added ENOSYS -> QERR_UNSUPPORTED, qapi/qmp/qerror.h was added for this

v4:
* s/\<nmi\>/nmi_monitor_handler/

v3:
* now contains both old code removal and new code insertion, easier to
track changes

Conflicts:
	hw/s390x/s390-virtio.c
---
 cpus.c                     | 14 --------------
 hw/s390x/s390-virtio-ccw.c |  6 ++++++
 hw/s390x/s390-virtio.c     | 15 +++++++++++++++
 hw/s390x/s390-virtio.h     |  3 +++
 4 files changed, 24 insertions(+), 14 deletions(-)

Comments

Cornelia Huck June 13, 2014, 6 a.m. UTC | #1
On Fri, 13 Jun 2014 13:36:58 +1000
Alexey Kardashevskiy <aik@ozlabs.ru> wrote:

> This implements an NMI interface for s390 and s390-ccw machines.
> 
> This removes #ifdef s390 branch in qmp_inject_nmi so new s390's
> nmi_monitor_handler() callback is going to be used for NMI.
> 
> Since nmi_monitor_handler()-calling code is platform independent,
> CPUState::cpu_index is used instead of S390CPU::env.cpu_num.
> There should not be any change in behaviour as both @cpu_index and
> @cpu_num are global CPU numbers.
> 
> Also, s390_cpu_restart() takes care of preforming operations in
> the specific CPU thread so no extra measure is required here either.

I find this paragraph a bit confusing; I'd just remove it.

> 
> Since the only error s390_cpu_restart() can return is ENOSYS, convert
> it to QERR_UNSUPPORTED.
> 
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
> ---
> Changes:
> v7:
> * since now s390' are QOM'ed, add interface to them and do not create
> new object
> 
> v6:
> * supported NMI interface
> 
> v5:
> * added ENOSYS -> QERR_UNSUPPORTED, qapi/qmp/qerror.h was added for this
> 
> v4:
> * s/\<nmi\>/nmi_monitor_handler/
> 
> v3:
> * now contains both old code removal and new code insertion, easier to
> track changes
> 
> Conflicts:
> 	hw/s390x/s390-virtio.c
> ---
>  cpus.c                     | 14 --------------
>  hw/s390x/s390-virtio-ccw.c |  6 ++++++
>  hw/s390x/s390-virtio.c     | 15 +++++++++++++++
>  hw/s390x/s390-virtio.h     |  3 +++
>  4 files changed, 24 insertions(+), 14 deletions(-)
> 
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Alexey Kardashevskiy June 14, 2014, 2:41 a.m. UTC | #2
On 06/13/2014 04:00 PM, Cornelia Huck wrote:
> On Fri, 13 Jun 2014 13:36:58 +1000
> Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
> 
>> This implements an NMI interface for s390 and s390-ccw machines.
>>
>> This removes #ifdef s390 branch in qmp_inject_nmi so new s390's
>> nmi_monitor_handler() callback is going to be used for NMI.
>>
>> Since nmi_monitor_handler()-calling code is platform independent,
>> CPUState::cpu_index is used instead of S390CPU::env.cpu_num.
>> There should not be any change in behaviour as both @cpu_index and
>> @cpu_num are global CPU numbers.
>>
>> Also, s390_cpu_restart() takes care of preforming operations in
>> the specific CPU thread so no extra measure is required here either.
> 
> I find this paragraph a bit confusing; I'd just remove it.

Besides bad english (please feel free to adjust it), what else is confusing
here? I put it there because the spapr patch makes use of
async_run_on_cpu() and maintainers may ask why I do not do the same for
other platforms. This way I hoped I could reduce number of versions to post :)

> 
>>
>> Since the only error s390_cpu_restart() can return is ENOSYS, convert
>> it to QERR_UNSUPPORTED.
>>
>> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
>> ---
>> Changes:
>> v7:
>> * since now s390' are QOM'ed, add interface to them and do not create
>> new object
>>
>> v6:
>> * supported NMI interface
>>
>> v5:
>> * added ENOSYS -> QERR_UNSUPPORTED, qapi/qmp/qerror.h was added for this
>>
>> v4:
>> * s/\<nmi\>/nmi_monitor_handler/
>>
>> v3:
>> * now contains both old code removal and new code insertion, easier to
>> track changes
>>
>> Conflicts:
>> 	hw/s390x/s390-virtio.c
>> ---
>>  cpus.c                     | 14 --------------
>>  hw/s390x/s390-virtio-ccw.c |  6 ++++++
>>  hw/s390x/s390-virtio.c     | 15 +++++++++++++++
>>  hw/s390x/s390-virtio.h     |  3 +++
>>  4 files changed, 24 insertions(+), 14 deletions(-)
>>
> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
>
Cornelia Huck June 16, 2014, 7:16 a.m. UTC | #3
On Sat, 14 Jun 2014 12:41:50 +1000
Alexey Kardashevskiy <aik@ozlabs.ru> wrote:

> On 06/13/2014 04:00 PM, Cornelia Huck wrote:
> > On Fri, 13 Jun 2014 13:36:58 +1000
> > Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
> > 
> >> This implements an NMI interface for s390 and s390-ccw machines.
> >>
> >> This removes #ifdef s390 branch in qmp_inject_nmi so new s390's
> >> nmi_monitor_handler() callback is going to be used for NMI.
> >>
> >> Since nmi_monitor_handler()-calling code is platform independent,
> >> CPUState::cpu_index is used instead of S390CPU::env.cpu_num.
> >> There should not be any change in behaviour as both @cpu_index and
> >> @cpu_num are global CPU numbers.
> >>
> >> Also, s390_cpu_restart() takes care of preforming operations in
> >> the specific CPU thread so no extra measure is required here either.
> > 
> > I find this paragraph a bit confusing; I'd just remove it.
> 
> Besides bad english (please feel free to adjust it), what else is confusing
> here? I put it there because the spapr patch makes use of
> async_run_on_cpu() and maintainers may ask why I do not do the same for
> other platforms. This way I hoped I could reduce number of versions to post :)

What about

"Note that s390_cpu_restart() already takes care of the specified cpu,
so we don't need to schedule via async_run_on_cpu()."

> 
> > 
> >>
> >> Since the only error s390_cpu_restart() can return is ENOSYS, convert
> >> it to QERR_UNSUPPORTED.
> >>
> >> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
> >> ---
> >> Changes:
> >> v7:
> >> * since now s390' are QOM'ed, add interface to them and do not create
> >> new object
> >>
> >> v6:
> >> * supported NMI interface
> >>
> >> v5:
> >> * added ENOSYS -> QERR_UNSUPPORTED, qapi/qmp/qerror.h was added for this
> >>
> >> v4:
> >> * s/\<nmi\>/nmi_monitor_handler/
> >>
> >> v3:
> >> * now contains both old code removal and new code insertion, easier to
> >> track changes
> >>
> >> Conflicts:
> >> 	hw/s390x/s390-virtio.c
> >> ---
> >>  cpus.c                     | 14 --------------
> >>  hw/s390x/s390-virtio-ccw.c |  6 ++++++
> >>  hw/s390x/s390-virtio.c     | 15 +++++++++++++++
> >>  hw/s390x/s390-virtio.h     |  3 +++
> >>  4 files changed, 24 insertions(+), 14 deletions(-)
> >>
> > Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
> > 
> 
>
Alexey Kardashevskiy June 16, 2014, 8:33 a.m. UTC | #4
On 06/16/2014 05:16 PM, Cornelia Huck wrote:
> On Sat, 14 Jun 2014 12:41:50 +1000
> Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
> 
>> On 06/13/2014 04:00 PM, Cornelia Huck wrote:
>>> On Fri, 13 Jun 2014 13:36:58 +1000
>>> Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
>>>
>>>> This implements an NMI interface for s390 and s390-ccw machines.
>>>>
>>>> This removes #ifdef s390 branch in qmp_inject_nmi so new s390's
>>>> nmi_monitor_handler() callback is going to be used for NMI.
>>>>
>>>> Since nmi_monitor_handler()-calling code is platform independent,
>>>> CPUState::cpu_index is used instead of S390CPU::env.cpu_num.
>>>> There should not be any change in behaviour as both @cpu_index and
>>>> @cpu_num are global CPU numbers.
>>>>
>>>> Also, s390_cpu_restart() takes care of preforming operations in
>>>> the specific CPU thread so no extra measure is required here either.
>>>
>>> I find this paragraph a bit confusing; I'd just remove it.
>>
>> Besides bad english (please feel free to adjust it), what else is confusing
>> here? I put it there because the spapr patch makes use of
>> async_run_on_cpu() and maintainers may ask why I do not do the same for
>> other platforms. This way I hoped I could reduce number of versions to post :)
> 
> What about
> 
> "Note that s390_cpu_restart() already takes care of the specified cpu,
> so we don't need to schedule via async_run_on_cpu()."

I fail to see how exactly this is better or different but ok :)


Alex, should I repost it with Cornelia's suggestion? What should happen
next to this patchset? Who is supposed to pick it up? Thanks.



>>
>>>
>>>>
>>>> Since the only error s390_cpu_restart() can return is ENOSYS, convert
>>>> it to QERR_UNSUPPORTED.
>>>>
>>>> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
>>>> ---
>>>> Changes:
>>>> v7:
>>>> * since now s390' are QOM'ed, add interface to them and do not create
>>>> new object
>>>>
>>>> v6:
>>>> * supported NMI interface
>>>>
>>>> v5:
>>>> * added ENOSYS -> QERR_UNSUPPORTED, qapi/qmp/qerror.h was added for this
>>>>
>>>> v4:
>>>> * s/\<nmi\>/nmi_monitor_handler/
>>>>
>>>> v3:
>>>> * now contains both old code removal and new code insertion, easier to
>>>> track changes
>>>>
>>>> Conflicts:
>>>> 	hw/s390x/s390-virtio.c
>>>> ---
>>>>  cpus.c                     | 14 --------------
>>>>  hw/s390x/s390-virtio-ccw.c |  6 ++++++
>>>>  hw/s390x/s390-virtio.c     | 15 +++++++++++++++
>>>>  hw/s390x/s390-virtio.h     |  3 +++
>>>>  4 files changed, 24 insertions(+), 14 deletions(-)
>>>>
>>> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
>>>
>>
>>
>
Alexander Graf June 16, 2014, 8:37 a.m. UTC | #5
On 16.06.14 10:33, Alexey Kardashevskiy wrote:
> On 06/16/2014 05:16 PM, Cornelia Huck wrote:
>> On Sat, 14 Jun 2014 12:41:50 +1000
>> Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
>>
>>> On 06/13/2014 04:00 PM, Cornelia Huck wrote:
>>>> On Fri, 13 Jun 2014 13:36:58 +1000
>>>> Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
>>>>
>>>>> This implements an NMI interface for s390 and s390-ccw machines.
>>>>>
>>>>> This removes #ifdef s390 branch in qmp_inject_nmi so new s390's
>>>>> nmi_monitor_handler() callback is going to be used for NMI.
>>>>>
>>>>> Since nmi_monitor_handler()-calling code is platform independent,
>>>>> CPUState::cpu_index is used instead of S390CPU::env.cpu_num.
>>>>> There should not be any change in behaviour as both @cpu_index and
>>>>> @cpu_num are global CPU numbers.
>>>>>
>>>>> Also, s390_cpu_restart() takes care of preforming operations in
>>>>> the specific CPU thread so no extra measure is required here either.
>>>> I find this paragraph a bit confusing; I'd just remove it.
>>> Besides bad english (please feel free to adjust it), what else is confusing
>>> here? I put it there because the spapr patch makes use of
>>> async_run_on_cpu() and maintainers may ask why I do not do the same for
>>> other platforms. This way I hoped I could reduce number of versions to post :)
>> What about
>>
>> "Note that s390_cpu_restart() already takes care of the specified cpu,
>> so we don't need to schedule via async_run_on_cpu()."
> I fail to see how exactly this is better or different but ok :)
>
>
> Alex, should I repost it with Cornelia's suggestion? What should happen
> next to this patchset? Who is supposed to pick it up? Thanks.

Just post v8 of that single patch with the right message-id as 
reference. I can pick up the patches, but I'd like at least an ack from 
Paolo on the whole set.


Alex
Alexey Kardashevskiy June 23, 2014, 1:32 p.m. UTC | #6
On 06/16/2014 06:37 PM, Alexander Graf wrote:
> 
> On 16.06.14 10:33, Alexey Kardashevskiy wrote:
>> On 06/16/2014 05:16 PM, Cornelia Huck wrote:
>>> On Sat, 14 Jun 2014 12:41:50 +1000
>>> Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
>>>
>>>> On 06/13/2014 04:00 PM, Cornelia Huck wrote:
>>>>> On Fri, 13 Jun 2014 13:36:58 +1000
>>>>> Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
>>>>>
>>>>>> This implements an NMI interface for s390 and s390-ccw machines.
>>>>>>
>>>>>> This removes #ifdef s390 branch in qmp_inject_nmi so new s390's
>>>>>> nmi_monitor_handler() callback is going to be used for NMI.
>>>>>>
>>>>>> Since nmi_monitor_handler()-calling code is platform independent,
>>>>>> CPUState::cpu_index is used instead of S390CPU::env.cpu_num.
>>>>>> There should not be any change in behaviour as both @cpu_index and
>>>>>> @cpu_num are global CPU numbers.
>>>>>>
>>>>>> Also, s390_cpu_restart() takes care of preforming operations in
>>>>>> the specific CPU thread so no extra measure is required here either.
>>>>> I find this paragraph a bit confusing; I'd just remove it.
>>>> Besides bad english (please feel free to adjust it), what else is
>>>> confusing
>>>> here? I put it there because the spapr patch makes use of
>>>> async_run_on_cpu() and maintainers may ask why I do not do the same for
>>>> other platforms. This way I hoped I could reduce number of versions to
>>>> post :)
>>> What about
>>>
>>> "Note that s390_cpu_restart() already takes care of the specified cpu,
>>> so we don't need to schedule via async_run_on_cpu()."
>> I fail to see how exactly this is better or different but ok :)
>>
>>
>> Alex, should I repost it with Cornelia's suggestion? What should happen
>> next to this patchset? Who is supposed to pick it up? Thanks.
> 
> Just post v8 of that single patch with the right message-id as reference. I
> can pick up the patches, but I'd like at least an ack from Paolo on the
> whole set.


Anybody, ping? Or we are waiting till x86 machines got QOM'ed and then I'll
repost it with x86 NMI handler? Thanks!
Alexey Kardashevskiy July 3, 2014, 4:59 a.m. UTC | #7
On 06/23/2014 11:32 PM, Alexey Kardashevskiy wrote:
> On 06/16/2014 06:37 PM, Alexander Graf wrote:
>>
>> On 16.06.14 10:33, Alexey Kardashevskiy wrote:
>>> On 06/16/2014 05:16 PM, Cornelia Huck wrote:
>>>> On Sat, 14 Jun 2014 12:41:50 +1000
>>>> Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
>>>>
>>>>> On 06/13/2014 04:00 PM, Cornelia Huck wrote:
>>>>>> On Fri, 13 Jun 2014 13:36:58 +1000
>>>>>> Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
>>>>>>
>>>>>>> This implements an NMI interface for s390 and s390-ccw machines.
>>>>>>>
>>>>>>> This removes #ifdef s390 branch in qmp_inject_nmi so new s390's
>>>>>>> nmi_monitor_handler() callback is going to be used for NMI.
>>>>>>>
>>>>>>> Since nmi_monitor_handler()-calling code is platform independent,
>>>>>>> CPUState::cpu_index is used instead of S390CPU::env.cpu_num.
>>>>>>> There should not be any change in behaviour as both @cpu_index and
>>>>>>> @cpu_num are global CPU numbers.
>>>>>>>
>>>>>>> Also, s390_cpu_restart() takes care of preforming operations in
>>>>>>> the specific CPU thread so no extra measure is required here either.
>>>>>> I find this paragraph a bit confusing; I'd just remove it.
>>>>> Besides bad english (please feel free to adjust it), what else is
>>>>> confusing
>>>>> here? I put it there because the spapr patch makes use of
>>>>> async_run_on_cpu() and maintainers may ask why I do not do the same for
>>>>> other platforms. This way I hoped I could reduce number of versions to
>>>>> post :)
>>>> What about
>>>>
>>>> "Note that s390_cpu_restart() already takes care of the specified cpu,
>>>> so we don't need to schedule via async_run_on_cpu()."
>>> I fail to see how exactly this is better or different but ok :)
>>>
>>>
>>> Alex, should I repost it with Cornelia's suggestion? What should happen
>>> next to this patchset? Who is supposed to pick it up? Thanks.
>>
>> Just post v8 of that single patch with the right message-id as reference. I
>> can pick up the patches, but I'd like at least an ack from Paolo on the
>> whole set.
> 
> 
> Anybody, ping? Or we are waiting till x86 machines got QOM'ed and then I'll
> repost it with x86 NMI handler? Thanks!


Paolo promised to ack (in irc) and obviously forgot :) Should I give up and
stop bothering noble people? :)
Markus Armbruster July 3, 2014, 7:11 a.m. UTC | #8
Alexey Kardashevskiy <aik@ozlabs.ru> writes:

> On 06/23/2014 11:32 PM, Alexey Kardashevskiy wrote:
>> On 06/16/2014 06:37 PM, Alexander Graf wrote:
>>>
>>> On 16.06.14 10:33, Alexey Kardashevskiy wrote:
>>>> On 06/16/2014 05:16 PM, Cornelia Huck wrote:
>>>>> On Sat, 14 Jun 2014 12:41:50 +1000
>>>>> Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
>>>>>
>>>>>> On 06/13/2014 04:00 PM, Cornelia Huck wrote:
>>>>>>> On Fri, 13 Jun 2014 13:36:58 +1000
>>>>>>> Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
>>>>>>>
>>>>>>>> This implements an NMI interface for s390 and s390-ccw machines.
>>>>>>>>
>>>>>>>> This removes #ifdef s390 branch in qmp_inject_nmi so new s390's
>>>>>>>> nmi_monitor_handler() callback is going to be used for NMI.
>>>>>>>>
>>>>>>>> Since nmi_monitor_handler()-calling code is platform independent,
>>>>>>>> CPUState::cpu_index is used instead of S390CPU::env.cpu_num.
>>>>>>>> There should not be any change in behaviour as both @cpu_index and
>>>>>>>> @cpu_num are global CPU numbers.
>>>>>>>>
>>>>>>>> Also, s390_cpu_restart() takes care of preforming operations in
>>>>>>>> the specific CPU thread so no extra measure is required here either.
>>>>>>> I find this paragraph a bit confusing; I'd just remove it.
>>>>>> Besides bad english (please feel free to adjust it), what else is
>>>>>> confusing
>>>>>> here? I put it there because the spapr patch makes use of
>>>>>> async_run_on_cpu() and maintainers may ask why I do not do the same for
>>>>>> other platforms. This way I hoped I could reduce number of versions to
>>>>>> post :)
>>>>> What about
>>>>>
>>>>> "Note that s390_cpu_restart() already takes care of the specified cpu,
>>>>> so we don't need to schedule via async_run_on_cpu()."
>>>> I fail to see how exactly this is better or different but ok :)
>>>>
>>>>
>>>> Alex, should I repost it with Cornelia's suggestion? What should happen
>>>> next to this patchset? Who is supposed to pick it up? Thanks.
>>>
>>> Just post v8 of that single patch with the right message-id as reference. I
>>> can pick up the patches, but I'd like at least an ack from Paolo on the
>>> whole set.
>> 
>> 
>> Anybody, ping? Or we are waiting till x86 machines got QOM'ed and then I'll
>> repost it with x86 NMI handler? Thanks!
>
>
> Paolo promised to ack (in irc) and obviously forgot :) Should I give up and
> stop bothering noble people? :)

No, you should politely bother them again.
Alexey Kardashevskiy July 14, 2014, 3:17 a.m. UTC | #9
On 07/03/2014 05:11 PM, Markus Armbruster wrote:
> Alexey Kardashevskiy <aik@ozlabs.ru> writes:
> 
>> On 06/23/2014 11:32 PM, Alexey Kardashevskiy wrote:
>>> On 06/16/2014 06:37 PM, Alexander Graf wrote:
>>>>
>>>> On 16.06.14 10:33, Alexey Kardashevskiy wrote:
>>>>> On 06/16/2014 05:16 PM, Cornelia Huck wrote:
>>>>>> On Sat, 14 Jun 2014 12:41:50 +1000
>>>>>> Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
>>>>>>
>>>>>>> On 06/13/2014 04:00 PM, Cornelia Huck wrote:
>>>>>>>> On Fri, 13 Jun 2014 13:36:58 +1000
>>>>>>>> Alexey Kardashevskiy <aik@ozlabs.ru> wrote:
>>>>>>>>
>>>>>>>>> This implements an NMI interface for s390 and s390-ccw machines.
>>>>>>>>>
>>>>>>>>> This removes #ifdef s390 branch in qmp_inject_nmi so new s390's
>>>>>>>>> nmi_monitor_handler() callback is going to be used for NMI.
>>>>>>>>>
>>>>>>>>> Since nmi_monitor_handler()-calling code is platform independent,
>>>>>>>>> CPUState::cpu_index is used instead of S390CPU::env.cpu_num.
>>>>>>>>> There should not be any change in behaviour as both @cpu_index and
>>>>>>>>> @cpu_num are global CPU numbers.
>>>>>>>>>
>>>>>>>>> Also, s390_cpu_restart() takes care of preforming operations in
>>>>>>>>> the specific CPU thread so no extra measure is required here either.
>>>>>>>> I find this paragraph a bit confusing; I'd just remove it.
>>>>>>> Besides bad english (please feel free to adjust it), what else is
>>>>>>> confusing
>>>>>>> here? I put it there because the spapr patch makes use of
>>>>>>> async_run_on_cpu() and maintainers may ask why I do not do the same for
>>>>>>> other platforms. This way I hoped I could reduce number of versions to
>>>>>>> post :)
>>>>>> What about
>>>>>>
>>>>>> "Note that s390_cpu_restart() already takes care of the specified cpu,
>>>>>> so we don't need to schedule via async_run_on_cpu()."
>>>>> I fail to see how exactly this is better or different but ok :)
>>>>>
>>>>>
>>>>> Alex, should I repost it with Cornelia's suggestion? What should happen
>>>>> next to this patchset? Who is supposed to pick it up? Thanks.
>>>>
>>>> Just post v8 of that single patch with the right message-id as reference. I
>>>> can pick up the patches, but I'd like at least an ack from Paolo on the
>>>> whole set.
>>>
>>>
>>> Anybody, ping? Or we are waiting till x86 machines got QOM'ed and then I'll
>>> repost it with x86 NMI handler? Thanks!
>>
>>
>> Paolo promised to ack (in irc) and obviously forgot :) Should I give up and
>> stop bothering noble people? :)
> 
> No, you should politely bother them again.


That does not seem helping though :-/
Paolo Bonzini July 14, 2014, 8:29 p.m. UTC | #10
Il 14/07/2014 05:17, Alexey Kardashevskiy ha scritto:
>> > No, you should politely bother them again.
>
> That does not seem helping though :-/

Sorry. :)

Well, patch 1 is the same as v6 and for the others Cornelia and Alex can 
ack it.  It looks good to me though.

Paolo
Cornelia Huck July 15, 2014, 5:47 a.m. UTC | #11
On Mon, 14 Jul 2014 22:29:50 +0200
Paolo Bonzini <pbonzini@redhat.com> wrote:

> Il 14/07/2014 05:17, Alexey Kardashevskiy ha scritto:
> >> > No, you should politely bother them again.
> >
> > That does not seem helping though :-/
> 
> Sorry. :)
> 
> Well, patch 1 is the same as v6 and for the others Cornelia and Alex can 
> ack it.  It looks good to me though.

I had r-b'd v8 of this patch and v7 of the other s390x patch, and the
whole series looks fine to me.
Alexey Kardashevskiy July 17, 2014, 6:30 a.m. UTC | #12
On 07/15/2014 06:29 AM, Paolo Bonzini wrote:
> Il 14/07/2014 05:17, Alexey Kardashevskiy ha scritto:
>>> > No, you should politely bother them again.
>>
>> That does not seem helping though :-/
> 
> Sorry. :)
> 
> Well, patch 1 is the same as v6 and for the others Cornelia and Alex can
> ack it.  It looks good to me though.


Let me clarify things here.

Alex rb'ed to 0/4, Cornelia rb'ed 2/4 and 3/4, so I put Alex's rb to
1&2&3&4&5, Cornelia's rb to 2&3, rebase it on top of the current upstream,
repost after 2.1 is released and resume annoying people again. Is that correct?

This is my current set:
5/5 pc_piix: Migrate to new NMI interface
4/5 spapr: Add support for new NMI interface
3/5 s390x: Migrate to new NMI interface
2/5 s390x: Convert QEMUMachine to MachineClass
1/5 cpus: Define callback for QEMU "nmi" command
Alexey Kardashevskiy Aug. 20, 2014, 10:20 a.m. UTC | #13
On 07/17/2014 04:30 PM, Alexey Kardashevskiy wrote:
> On 07/15/2014 06:29 AM, Paolo Bonzini wrote:
>> Il 14/07/2014 05:17, Alexey Kardashevskiy ha scritto:
>>>>> No, you should politely bother them again.
>>>
>>> That does not seem helping though :-/
>>
>> Sorry. :)
>>
>> Well, patch 1 is the same as v6 and for the others Cornelia and Alex can
>> ack it.  It looks good to me though.
> 
> 
> Let me clarify things here.
> 
> Alex rb'ed to 0/4, Cornelia rb'ed 2/4 and 3/4, so I put Alex's rb to
> 1&2&3&4&5, Cornelia's rb to 2&3, rebase it on top of the current upstream,
> repost after 2.1 is released and resume annoying people again. Is that correct?
> 
> This is my current set:
> 5/5 pc_piix: Migrate to new NMI interface
> 4/5 spapr: Add support for new NMI interface
> 3/5 s390x: Migrate to new NMI interface
> 2/5 s390x: Convert QEMUMachine to MachineClass
> 1/5 cpus: Define callback for QEMU "nmi" command


Alex, ping.


ps. anecdot.
"what is your problem?"
"doctor, everybody ignores me"
"ah I see. next patient, please"
:)
Alexander Graf Aug. 20, 2014, 11:20 a.m. UTC | #14
On 20.08.14 12:20, Alexey Kardashevskiy wrote:
> On 07/17/2014 04:30 PM, Alexey Kardashevskiy wrote:
>> On 07/15/2014 06:29 AM, Paolo Bonzini wrote:
>>> Il 14/07/2014 05:17, Alexey Kardashevskiy ha scritto:
>>>>>> No, you should politely bother them again.
>>>>
>>>> That does not seem helping though :-/
>>>
>>> Sorry. :)
>>>
>>> Well, patch 1 is the same as v6 and for the others Cornelia and Alex can
>>> ack it.  It looks good to me though.
>>
>>
>> Let me clarify things here.
>>
>> Alex rb'ed to 0/4, Cornelia rb'ed 2/4 and 3/4, so I put Alex's rb to
>> 1&2&3&4&5, Cornelia's rb to 2&3, rebase it on top of the current upstream,
>> repost after 2.1 is released and resume annoying people again. Is that correct?
>>
>> This is my current set:
>> 5/5 pc_piix: Migrate to new NMI interface
>> 4/5 spapr: Add support for new NMI interface
>> 3/5 s390x: Migrate to new NMI interface
>> 2/5 s390x: Convert QEMUMachine to MachineClass
>> 1/5 cpus: Define callback for QEMU "nmi" command
> 
> 
> Alex, ping.
>


Uh, what exactly do you expect from me? :)


Alex
Alexey Kardashevskiy Aug. 20, 2014, 11:38 a.m. UTC | #15
On 08/20/2014 09:20 PM, Alexander Graf wrote:
> 
> 
> On 20.08.14 12:20, Alexey Kardashevskiy wrote:
>> On 07/17/2014 04:30 PM, Alexey Kardashevskiy wrote:
>>> On 07/15/2014 06:29 AM, Paolo Bonzini wrote:
>>>> Il 14/07/2014 05:17, Alexey Kardashevskiy ha scritto:
>>>>>>> No, you should politely bother them again.
>>>>>
>>>>> That does not seem helping though :-/
>>>>
>>>> Sorry. :)
>>>>
>>>> Well, patch 1 is the same as v6 and for the others Cornelia and Alex can
>>>> ack it.  It looks good to me though.
>>>
>>>
>>> Let me clarify things here.
>>>
>>> Alex rb'ed to 0/4, Cornelia rb'ed 2/4 and 3/4, so I put Alex's rb to
>>> 1&2&3&4&5, Cornelia's rb to 2&3, rebase it on top of the current upstream,
>>> repost after 2.1 is released and resume annoying people again. Is that correct?
>>>
>>> This is my current set:
>>> 5/5 pc_piix: Migrate to new NMI interface
>>> 4/5 spapr: Add support for new NMI interface
>>> 3/5 s390x: Migrate to new NMI interface
>>> 2/5 s390x: Convert QEMUMachine to MachineClass
>>> 1/5 cpus: Define callback for QEMU "nmi" command
>>
>>
>> Alex, ping.
>>
> 
> 
> Uh, what exactly do you expect from me? :)

No idea :) You could take patches to your tree. I do not understand what to
do with this set now. Please help. Thanks.
Alexander Graf Aug. 20, 2014, 12:05 p.m. UTC | #16
On 20.08.14 13:38, Alexey Kardashevskiy wrote:
> On 08/20/2014 09:20 PM, Alexander Graf wrote:
>>
>>
>> On 20.08.14 12:20, Alexey Kardashevskiy wrote:
>>> On 07/17/2014 04:30 PM, Alexey Kardashevskiy wrote:
>>>> On 07/15/2014 06:29 AM, Paolo Bonzini wrote:
>>>>> Il 14/07/2014 05:17, Alexey Kardashevskiy ha scritto:
>>>>>>>> No, you should politely bother them again.
>>>>>>
>>>>>> That does not seem helping though :-/
>>>>>
>>>>> Sorry. :)
>>>>>
>>>>> Well, patch 1 is the same as v6 and for the others Cornelia and Alex can
>>>>> ack it.  It looks good to me though.
>>>>
>>>>
>>>> Let me clarify things here.
>>>>
>>>> Alex rb'ed to 0/4, Cornelia rb'ed 2/4 and 3/4, so I put Alex's rb to
>>>> 1&2&3&4&5, Cornelia's rb to 2&3, rebase it on top of the current upstream,
>>>> repost after 2.1 is released and resume annoying people again. Is that correct?
>>>>
>>>> This is my current set:
>>>> 5/5 pc_piix: Migrate to new NMI interface
>>>> 4/5 spapr: Add support for new NMI interface
>>>> 3/5 s390x: Migrate to new NMI interface
>>>> 2/5 s390x: Convert QEMUMachine to MachineClass
>>>> 1/5 cpus: Define callback for QEMU "nmi" command
>>>
>>>
>>> Alex, ping.
>>>
>>
>>
>> Uh, what exactly do you expect from me? :)
> 
> No idea :) You could take patches to your tree. I do not understand what to
> do with this set now. Please help. Thanks.

The way I understood your last email you wanted to rebase and repost
them at which point someone could pick them up :)


Alex
Alexey Kardashevskiy Aug. 20, 2014, 12:11 p.m. UTC | #17
On 08/20/2014 10:05 PM, Alexander Graf wrote:
> 
> 
> On 20.08.14 13:38, Alexey Kardashevskiy wrote:
>> On 08/20/2014 09:20 PM, Alexander Graf wrote:
>>>
>>>
>>> On 20.08.14 12:20, Alexey Kardashevskiy wrote:
>>>> On 07/17/2014 04:30 PM, Alexey Kardashevskiy wrote:
>>>>> On 07/15/2014 06:29 AM, Paolo Bonzini wrote:
>>>>>> Il 14/07/2014 05:17, Alexey Kardashevskiy ha scritto:
>>>>>>>>> No, you should politely bother them again.
>>>>>>>
>>>>>>> That does not seem helping though :-/
>>>>>>
>>>>>> Sorry. :)
>>>>>>
>>>>>> Well, patch 1 is the same as v6 and for the others Cornelia and Alex can
>>>>>> ack it.  It looks good to me though.
>>>>>
>>>>>
>>>>> Let me clarify things here.
>>>>>
>>>>> Alex rb'ed to 0/4, Cornelia rb'ed 2/4 and 3/4, so I put Alex's rb to
>>>>> 1&2&3&4&5, Cornelia's rb to 2&3, rebase it on top of the current upstream,
>>>>> repost after 2.1 is released and resume annoying people again. Is that correct?
>>>>>
>>>>> This is my current set:
>>>>> 5/5 pc_piix: Migrate to new NMI interface
>>>>> 4/5 spapr: Add support for new NMI interface
>>>>> 3/5 s390x: Migrate to new NMI interface
>>>>> 2/5 s390x: Convert QEMUMachine to MachineClass
>>>>> 1/5 cpus: Define callback for QEMU "nmi" command
>>>>
>>>>
>>>> Alex, ping.
>>>>
>>>
>>>
>>> Uh, what exactly do you expect from me? :)
>>
>> No idea :) You could take patches to your tree. I do not understand what to
>> do with this set now. Please help. Thanks.
> 
> The way I understood your last email you wanted to rebase and repost
> them at which point someone could pick them up :)

I wanted answer to "is that correct?" :)
And I tried replaying the patchset on top of your ppc-next, it applied. But
I'll repost to make sure that we have the same thing.
Alexander Graf Aug. 20, 2014, 12:12 p.m. UTC | #18
On 20.08.14 14:11, Alexey Kardashevskiy wrote:
> On 08/20/2014 10:05 PM, Alexander Graf wrote:
>>
>>
>> On 20.08.14 13:38, Alexey Kardashevskiy wrote:
>>> On 08/20/2014 09:20 PM, Alexander Graf wrote:
>>>>
>>>>
>>>> On 20.08.14 12:20, Alexey Kardashevskiy wrote:
>>>>> On 07/17/2014 04:30 PM, Alexey Kardashevskiy wrote:
>>>>>> On 07/15/2014 06:29 AM, Paolo Bonzini wrote:
>>>>>>> Il 14/07/2014 05:17, Alexey Kardashevskiy ha scritto:
>>>>>>>>>> No, you should politely bother them again.
>>>>>>>>
>>>>>>>> That does not seem helping though :-/
>>>>>>>
>>>>>>> Sorry. :)
>>>>>>>
>>>>>>> Well, patch 1 is the same as v6 and for the others Cornelia and Alex can
>>>>>>> ack it.  It looks good to me though.
>>>>>>
>>>>>>
>>>>>> Let me clarify things here.
>>>>>>
>>>>>> Alex rb'ed to 0/4, Cornelia rb'ed 2/4 and 3/4, so I put Alex's rb to
>>>>>> 1&2&3&4&5, Cornelia's rb to 2&3, rebase it on top of the current upstream,
>>>>>> repost after 2.1 is released and resume annoying people again. Is that correct?
>>>>>>
>>>>>> This is my current set:
>>>>>> 5/5 pc_piix: Migrate to new NMI interface
>>>>>> 4/5 spapr: Add support for new NMI interface
>>>>>> 3/5 s390x: Migrate to new NMI interface
>>>>>> 2/5 s390x: Convert QEMUMachine to MachineClass
>>>>>> 1/5 cpus: Define callback for QEMU "nmi" command
>>>>>
>>>>>
>>>>> Alex, ping.
>>>>>
>>>>
>>>>
>>>> Uh, what exactly do you expect from me? :)
>>>
>>> No idea :) You could take patches to your tree. I do not understand what to
>>> do with this set now. Please help. Thanks.
>>
>> The way I understood your last email you wanted to rebase and repost
>> them at which point someone could pick them up :)
> 
> I wanted answer to "is that correct?" :)
> And I tried replaying the patchset on top of your ppc-next, it applied. But
> I'll repost to make sure that we have the same thing.

Oh, cool. I'll apply them as soon as I finished to recover my HD then :)


Alex
Paolo Bonzini Aug. 20, 2014, 1:13 p.m. UTC | #19
Il 20/08/2014 14:12, Alexander Graf ha scritto:
> 
> 
> On 20.08.14 14:11, Alexey Kardashevskiy wrote:
>> On 08/20/2014 10:05 PM, Alexander Graf wrote:
>>>
>>>
>>> On 20.08.14 13:38, Alexey Kardashevskiy wrote:
>>>> On 08/20/2014 09:20 PM, Alexander Graf wrote:
>>>>>
>>>>>
>>>>> On 20.08.14 12:20, Alexey Kardashevskiy wrote:
>>>>>> On 07/17/2014 04:30 PM, Alexey Kardashevskiy wrote:
>>>>>>> On 07/15/2014 06:29 AM, Paolo Bonzini wrote:
>>>>>>>> Il 14/07/2014 05:17, Alexey Kardashevskiy ha scritto:
>>>>>>>>>>> No, you should politely bother them again.
>>>>>>>>>
>>>>>>>>> That does not seem helping though :-/
>>>>>>>>
>>>>>>>> Sorry. :)
>>>>>>>>
>>>>>>>> Well, patch 1 is the same as v6 and for the others Cornelia and Alex can
>>>>>>>> ack it.  It looks good to me though.
>>>>>>>
>>>>>>>
>>>>>>> Let me clarify things here.
>>>>>>>
>>>>>>> Alex rb'ed to 0/4, Cornelia rb'ed 2/4 and 3/4, so I put Alex's rb to
>>>>>>> 1&2&3&4&5, Cornelia's rb to 2&3, rebase it on top of the current upstream,
>>>>>>> repost after 2.1 is released and resume annoying people again. Is that correct?
>>>>>>>
>>>>>>> This is my current set:
>>>>>>> 5/5 pc_piix: Migrate to new NMI interface
>>>>>>> 4/5 spapr: Add support for new NMI interface
>>>>>>> 3/5 s390x: Migrate to new NMI interface
>>>>>>> 2/5 s390x: Convert QEMUMachine to MachineClass
>>>>>>> 1/5 cpus: Define callback for QEMU "nmi" command
>>>>>>
>>>>>>
>>>>>> Alex, ping.
>>>>>>
>>>>>
>>>>>
>>>>> Uh, what exactly do you expect from me? :)
>>>>
>>>> No idea :) You could take patches to your tree. I do not understand what to
>>>> do with this set now. Please help. Thanks.
>>>
>>> The way I understood your last email you wanted to rebase and repost
>>> them at which point someone could pick them up :)
>>
>> I wanted answer to "is that correct?" :)
>> And I tried replaying the patchset on top of your ppc-next, it applied. But
>> I'll repost to make sure that we have the same thing.
> 
> Oh, cool. I'll apply them as soon as I finished to recover my HD then :)

I can apply them to uq/master too.  Let me know.

Paolo
diff mbox

Patch

diff --git a/cpus.c b/cpus.c
index 5f357a4..34bf5c5 100644
--- a/cpus.c
+++ b/cpus.c
@@ -1481,20 +1481,6 @@  void qmp_inject_nmi(Error **errp)
             apic_deliver_nmi(cpu->apic_state);
         }
     }
-#elif defined(TARGET_S390X)
-    CPUState *cs;
-    S390CPU *cpu;
-
-    CPU_FOREACH(cs) {
-        cpu = S390_CPU(cs);
-        if (cpu->env.cpu_num == monitor_get_cpu_index()) {
-            if (s390_cpu_restart(S390_CPU(cs)) == -1) {
-                error_set(errp, QERR_UNSUPPORTED);
-                return;
-            }
-            break;
-        }
-    }
 #else
     nmi_monitor_handle(monitor_get_cpu_index(), errp);
 #endif
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 05311b8..004b2c2 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -139,6 +139,7 @@  static void ccw_init(MachineState *machine)
 static void ccw_machine_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
+    NMIClass *nc = NMI_CLASS(oc);
 
     mc->name = "s390-ccw-virtio";
     mc->alias = "s390-ccw";
@@ -152,12 +153,17 @@  static void ccw_machine_class_init(ObjectClass *oc, void *data)
     mc->no_sdcard = 1;
     mc->use_sclp = 1,
     mc->max_cpus = 255;
+    nc->nmi_monitor_handler = s390_nmi;
 }
 
 static const TypeInfo ccw_machine_info = {
     .name          = TYPE_S390_CCW_MACHINE,
     .parent        = TYPE_MACHINE,
     .class_init    = ccw_machine_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { TYPE_NMI },
+        { }
+    },
 };
 
 static void ccw_machine_register_types(void)
diff --git a/hw/s390x/s390-virtio.c b/hw/s390x/s390-virtio.c
index f1e0dbc..1a75a1c 100644
--- a/hw/s390x/s390-virtio.c
+++ b/hw/s390x/s390-virtio.c
@@ -280,9 +280,19 @@  static void s390_init(MachineState *machine)
     s390_create_virtio_net((BusState *)s390_bus, "virtio-net-s390");
 }
 
+void s390_nmi(NMIState *n, int cpu_index, Error **errp)
+{
+    CPUState *cs = qemu_get_cpu(cpu_index);
+
+    if (s390_cpu_restart(S390_CPU(cs))) {
+        error_set(errp, QERR_UNSUPPORTED);
+    }
+}
+
 static void s390_machine_class_init(ObjectClass *oc, void *data)
 {
     MachineClass *mc = MACHINE_CLASS(oc);
+    NMIClass *nc = NMI_CLASS(oc);
 
     mc->name = "s390-virtio";
     mc->alias = "s390";
@@ -297,12 +307,17 @@  static void s390_machine_class_init(ObjectClass *oc, void *data)
     mc->no_cdrom = 1;
     mc->no_sdcard = 1;
     mc->is_default = 1;
+    nc->nmi_monitor_handler = s390_nmi;
 }
 
 static const TypeInfo s390_machine_info = {
     .name          = TYPE_S390_MACHINE,
     .parent        = TYPE_MACHINE,
     .class_init    = s390_machine_class_init,
+    .interfaces = (InterfaceInfo[]) {
+        { TYPE_NMI },
+        { }
+    },
 };
 
 static void s390_machine_register_types(void)
diff --git a/hw/s390x/s390-virtio.h b/hw/s390x/s390-virtio.h
index 5c405e7..33847ae 100644
--- a/hw/s390x/s390-virtio.h
+++ b/hw/s390x/s390-virtio.h
@@ -12,6 +12,8 @@ 
 #ifndef HW_S390_VIRTIO_H
 #define HW_S390_VIRTIO_H 1
 
+#include "hw/nmi.h"
+
 #define KVM_S390_VIRTIO_NOTIFY          0
 #define KVM_S390_VIRTIO_RESET           1
 #define KVM_S390_VIRTIO_SET_STATUS      2
@@ -26,4 +28,5 @@  void s390_init_ipl_dev(const char *kernel_filename,
                        const char *initrd_filename,
                        const char *firmware);
 void s390_create_virtio_net(BusState *bus, const char *name);
+void s390_nmi(NMIState *n, int cpu_index, Error **errp);
 #endif