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

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.

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.

N.B. the Xen docs check handle < 0 instead of status, it also talks
about status < 0 on failure (not being nonzero) and I don't see
where a "partial grant" is mentioned and the example code just panics.

                                Michael van Elst
Internet: mlelstv%serpens.de@localhost
                                "A potential Snark may lurk in every tree."

Home | Main Index | Thread Index | Old Index