All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Fei Li <lifei1214@126.com>
Cc: Fei Li <fli@suse.com>,
	qemu-devel@nongnu.org, shirley17fei@gmail.com,
	Markus Armbruster <armbru@redhat.com>
Subject: Re: [Qemu-devel] [PATCH for-4.0 v9 10/16] qemu_thread: supplement error handling for h_resize_hpt_prepare
Date: Fri, 4 Jan 2019 16:21:01 +1100	[thread overview]
Message-ID: <20190104052101.GE2801@umbus.fritz.box> (raw)
In-Reply-To: <76ea4ac2-e60f-b762-a365-5924445ccd6c@126.com>

[-- Attachment #1: Type: text/plain, Size: 4731 bytes --]

On Thu, Jan 03, 2019 at 09:41:49PM +0800, Fei Li wrote:
> 
> 在 2019/1/3 上午11:43, David Gibson 写道:
> > On Wed, Jan 02, 2019 at 02:44:17PM +0800, 李菲 wrote:
> > > 在 2019/1/2 上午10:36, David Gibson 写道:
> > > > On Tue, Dec 25, 2018 at 10:04:43PM +0800, Fei Li wrote:
> > > > > Add a local_err to hold the error, and return the corresponding
> > > > > error code to replace the temporary &error_abort.
> > > > > 
> > > > > Cc: Markus Armbruster <armbru@redhat.com>
> > > > > Cc: David Gibson <david@gibson.dropbear.id.au>
> > > > > Signed-off-by: Fei Li <fli@suse.com>
> > > > This looks like a good change, but it no longer applies due to a
> > > > change in the qemu_thread_create() signature.
> > > Sorry that I am not sure whether I understand. Do you mean using
> > > &error_abort is more suitable for this handling, rather than report
> > > the &local_err & return a failure reason?
> > No, I just mean that context has been altered by a global change and
> > the patch will need to be fixed up to cope with that.
> 
> Just to be clearer: does the "global change" mean the "[patch 06/16]
> qemu_thread: Make qemu_thread_create() handle errors properly", or another
> patch not in this patch series?
> 
> If it means the [patch 06/16], I want to explain more: the 06/16 handles all
> qemu_thread_create() by passing &error_abort as the parameter, and the
> following patches are to improve on the &error_abort for callers who can
> handle more properly. E.g. if qemu_thread_create() fails in
> h_resize_hpt_prepare(),
> I think reporting the &local_err & returning the failure reason is more
> proper
> than just abort() inside qemu_thread_create() when calls error_setg_errno().
> 
> In other words, this patch is actually written to apply to patch 06. And I
> have
> no clue where it needs to be fixed up. Please correct me if I understand
> wrong.
> 
> 
> Have a nice day, thanks :)

Ah, sorry.  Since I was only CCed on this patch, not the rest of the
series, I assumed it was independent and didn't think to check the
earlier patches of the series.

So, yes, I think the global change I'm referring to is 6/16, which I
didn't have, so that explains the problem.

In that case it's probably best if this goes in via the same tree the
rest of the series is going to.  So, with the H_HARDWARE change made:

Acked-by: David Gibson <david@gibson.dropbear.id.au>


> Fei
> 
> 
> > 
> > > > > ---
> > > > >    hw/ppc/spapr_hcall.c | 12 ++++++++----
> > > > >    1 file changed, 8 insertions(+), 4 deletions(-)
> > > > > 
> > > > > diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c
> > > > > index 5bc2cf4540..7c16ade04a 100644
> > > > > --- a/hw/ppc/spapr_hcall.c
> > > > > +++ b/hw/ppc/spapr_hcall.c
> > > > > @@ -478,6 +478,7 @@ static target_ulong h_resize_hpt_prepare(PowerPCCPU *cpu,
> > > > >        sPAPRPendingHPT *pending = spapr->pending_hpt;
> > > > >        uint64_t current_ram_size;
> > > > >        int rc;
> > > > > +    Error *local_err = NULL;
> > > > >        if (spapr->resize_hpt == SPAPR_RESIZE_HPT_DISABLED) {
> > > > >            return H_AUTHORITY;
> > > > > @@ -538,10 +539,13 @@ static target_ulong h_resize_hpt_prepare(PowerPCCPU *cpu,
> > > > >        pending->shift = shift;
> > > > >        pending->ret = H_HARDWARE;
> > > > > -    /* TODO: let the further caller handle the error instead of abort() here */
> > > > > -    qemu_thread_create(&pending->thread, "sPAPR HPT prepare",
> > > > > -                       hpt_prepare_thread, pending,
> > > > > -                       QEMU_THREAD_DETACHED, &error_abort);
> > > > > +    if (!qemu_thread_create(&pending->thread, "sPAPR HPT prepare",
> > > > > +                            hpt_prepare_thread, pending,
> > > > > +                            QEMU_THREAD_DETACHED, &local_err)) {
> > > > > +        error_reportf_err(local_err, "failed to create hpt_prepare_thread: ");
> > > > > +        g_free(pending);
> > > > > +        return H_RESOURCE;
> > > > I also think H_HARDWARE would be a better choice here.  Although the
> > > > failure is due to a resource constraint, it's not because the guest
> > > > asked for too much, just because the host is in dire straits.  From
> > > > the guest's point of view it's basically a hardware failure.
> > > Ok, thanks. Will use H_HARDWARE instead.
> > > 
> > > Have a nice day, thanks for the review. :)
> > > Fei
> > > > > +    }
> > > > >        spapr->pending_hpt = pending;
> 

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2019-01-04  5:22 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-25 14:04 [Qemu-devel] [PATCH for-4.0 v9 00/16] qemu_thread_create: propagate the error to callers to handle Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 01/16] Fix segmentation fault when qemu_signal_init fails Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 02/16] migration: fix the multifd code when receiving less channels Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 03/16] migration: remove unused &local_err parameter in multifd_save_cleanup Fei Li
2019-01-07 16:50   ` Markus Armbruster
2019-01-08 15:58     ` fei
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 04/16] migration: add more error handling for postcopy_ram_enable_notify Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 05/16] migration: unify error handling for process_incoming_migration_co Fei Li
2019-01-03 11:25   ` Dr. David Alan Gilbert
2019-01-03 13:27     ` Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 06/16] qemu_thread: Make qemu_thread_create() handle errors properly Fei Li
2019-01-07 17:18   ` Markus Armbruster
2019-01-08 15:55     ` fei
2019-01-08 17:07       ` Markus Armbruster
2019-01-09 13:19         ` Fei Li
2019-01-09 14:36           ` Markus Armbruster
2019-01-09 14:42             ` fei
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 07/16] qemu_thread: supplement error handling for qemu_X_start_vcpu Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 08/16] qemu_thread: supplement error handling for qmp_dump_guest_memory Fei Li
2019-01-07 17:21   ` Markus Armbruster
2019-01-08 16:00     ` fei
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 09/16] qemu_thread: supplement error handling for pci_edu_realize Fei Li
2019-01-07 17:29   ` Markus Armbruster
2019-01-08  6:14     ` Jiri Slaby
2019-01-08  6:51       ` Peter Xu
2019-01-08  8:43         ` Markus Armbruster
2019-01-10 13:29           ` Fei Li
2019-01-11  2:49             ` Peter Xu
2019-01-11 13:19               ` Fei Li
2019-01-13 15:44     ` Fei Li
2019-01-14 12:36       ` Markus Armbruster
2019-01-14 13:38         ` Fei Li
2019-01-15 12:55           ` Markus Armbruster
2019-01-16  4:43             ` Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 10/16] qemu_thread: supplement error handling for h_resize_hpt_prepare Fei Li
2019-01-02  2:36   ` David Gibson
2019-01-02  6:44     ` 李菲
2019-01-03  3:43       ` David Gibson
2019-01-03 13:41         ` Fei Li
2019-01-04  5:21           ` David Gibson [this message]
2019-01-04  6:20             ` Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 11/16] qemu_thread: supplement error handling for emulated_realize Fei Li
2019-01-07 17:31   ` Markus Armbruster
2019-01-09 13:21     ` Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 12/16] qemu_thread: supplement error handling for iothread_complete/qemu_signalfd_compat Fei Li
2019-01-07 17:50   ` Markus Armbruster
2019-01-08 16:18     ` fei
2019-01-13 16:16       ` Fei Li
2019-01-14 12:53         ` Markus Armbruster
2019-01-14 13:52           ` Fei Li
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 13/16] qemu_thread: supplement error handling for migration Fei Li
2019-01-03 12:35   ` Dr. David Alan Gilbert
2019-01-03 12:47     ` Fei Li
2019-01-09 15:26   ` Markus Armbruster
2019-01-09 16:01     ` fei
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 14/16] qemu_thread: supplement error handling for vnc_start_worker_thread Fei Li
2019-01-07 17:54   ` Markus Armbruster
2019-01-08 16:24     ` fei
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 15/16] qemu_thread: supplement error handling for touch_all_pages Fei Li
2019-01-07 18:13   ` Markus Armbruster
2019-01-09 16:13     ` fei
2018-12-25 14:04 ` [Qemu-devel] [PATCH for-4.0 v9 16/16] qemu_thread_join: fix segmentation fault Fei Li
2019-01-07 17:55   ` Markus Armbruster
2019-01-08 16:50     ` fei
2019-01-08 17:29       ` Markus Armbruster
2019-01-09 14:01         ` Fei Li
2019-01-09 15:24           ` Markus Armbruster
2019-01-09 15:57             ` fei
2019-01-10  9:20               ` Markus Armbruster
2019-01-10 13:24                 ` Fei Li
2019-01-10 16:06                   ` Markus Armbruster
2019-01-11 14:01                     ` Fei Li
2019-01-02 13:46 ` [Qemu-devel] [PATCH for-4.0 v9 00/16] qemu_thread_create: propagate the error to callers to handle no-reply
2019-01-07 12:44   ` Fei Li

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=20190104052101.GE2801@umbus.fritz.box \
    --to=david@gibson.dropbear.id.au \
    --cc=armbru@redhat.com \
    --cc=fli@suse.com \
    --cc=lifei1214@126.com \
    --cc=qemu-devel@nongnu.org \
    --cc=shirley17fei@gmail.com \
    /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.