Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Instability issues with NetBSD-9, xen-4.11 and the xbdb backend driver



On Fri, Nov 15, 2019 at 05:29:26AM -0000, Michael van Elst wrote:
> buhrow%nfbcal.org@localhost (Brian Buhrow) writes:
> 
> >It looks like xen_shm_map() is supposed to return ENOMEM  if it can't
> >allocate a segment of memory in the moment, but instead, it's returning -1,
> >which triggers the messages I'm seeing.
> 
> And that's obviously wrong. xen_shm_map() has:
> 
>         for (i = 0; i < nentries; i++) {
>                 if (__predict_false(op[i].status))
>                         return op[i].status;
>                 handlep[i] = op[i].handle;
>         }
> 
> It shouldn't return the Xen op status but an errno.

Actually it was not specifically designed to return an errno.
Xen errors are fine too, and as they are < 0 it's distict namespaces.

> 
> On the other hand, if that is a partial grant, and since we cannot
> handle that, we probably need to undo that partial grant before returning
> the error to keep reference counting correct.

Probably.

As I mentionned in a previous message, it seems that we end up with an
error here because the hypervisor is called with bad flags (0).
While I can't see how this can happen, more debug infos (like: what i and
op[i].flags are when op[i].status is not 0) could be usefull.

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index