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

Re: [Xen-devel] [PATCH] tools/libs: Make xenforeignmemory_unmap_resource() idempotent



> -----Original Message-----
> From: Andrew Cooper
> Sent: 27 November 2018 16:10
> To: Paul Durrant <Paul.Durrant@xxxxxxxxxx>; Xen-devel <xen-
> devel@xxxxxxxxxxxxx>
> Cc: Ian Jackson <Ian.Jackson@xxxxxxxxxx>; Wei Liu <wei.liu2@xxxxxxxxxx>
> Subject: Re: [PATCH] tools/libs: Make xenforeignmemory_unmap_resource()
> idempotent
> 
> On 24/11/2018 15:05, Paul Durrant wrote:
> >> -----Original Message-----
> >> From: Andrew Cooper [mailto:andrew.cooper3@xxxxxxxxxx]
> >> Sent: 23 November 2018 15:12
> >> To: Xen-devel <xen-devel@xxxxxxxxxxxxx>
> >> Cc: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>; Ian Jackson
> >> <Ian.Jackson@xxxxxxxxxx>; Wei Liu <wei.liu2@xxxxxxxxxx>; Paul Durrant
> >> <Paul.Durrant@xxxxxxxxxx>
> >> Subject: [PATCH] tools/libs: Make xenforeignmemory_unmap_resource()
> >> idempotent
> >>
> >> Most other close/unmap functions are.
> >>
> >> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> >> ---
> >> CC: Ian Jackson <Ian.Jackson@xxxxxxxxxx>
> >> CC: Wei Liu <wei.liu2@xxxxxxxxxx>
> >> CC: Paul Durrant <paul.durrant@xxxxxxxxxx>
> >>
> >> This ideally wants backporting to 4.11 to hit 4.11.1
> >>
> >> I got an unexpected shock while trying to diagnose why GVT-g is still
> >> broken (differently!) on staging.
> >> ---
> >>  tools/libs/foreignmemory/core.c | 7 ++++++-
> >>  1 file changed, 6 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/tools/libs/foreignmemory/core.c
> >> b/tools/libs/foreignmemory/core.c
> >> index 63f12e2..2516fd4 100644
> >> --- a/tools/libs/foreignmemory/core.c
> >> +++ b/tools/libs/foreignmemory/core.c
> >> @@ -182,7 +182,12 @@ xenforeignmemory_resource_handle
> >> *xenforeignmemory_map_resource(
> >>  int xenforeignmemory_unmap_resource(
> >>      xenforeignmemory_handle *fmem, xenforeignmemory_resource_handle
> >> *fres)
> >>  {
> >> -    int rc = osdep_xenforeignmemory_unmap_resource(fmem, fres);
> >> +    int rc;
> >> +
> >> +    if ( !fres )
> >> +        return 0;
> >> +
> >> +    rc = osdep_xenforeignmemory_unmap_resource(fmem, fres);
> > Freeing NULL should not be problem as this defined to do nothing so
> there is nothing about this function which is not idempotent. I assume,
> without looking yet, that it is the osdep function which needs fixing.
> 
> Why?  You can fix it once for the entire library here, or once in every
> osdep flavour.
> 
> One of these is rather less code...

Actually I can argue my patch is both complete and smaller since there is a 
single non-idempotent osdep implementation at the moment :-) I'd also prefer 
that the osdep implementations are made (and kept) idempotent anyway.

  Paul
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.