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

Re: [XTF] xenbus: Don't wait if the response ring is full


  • To: Julien Grall <julien@xxxxxxx>
  • From: "Wieczorkiewicz, Pawel" <wipawel@xxxxxxxxx>
  • Date: Fri, 10 Jul 2020 07:53:39 +0000
  • Accept-language: en-US
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, "Grall, Julien" <jgrall@xxxxxxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, "Wieczorkiewicz, Pawel" <wipawel@xxxxxxxxx>
  • Delivery-date: Fri, 10 Jul 2020 07:53:53 +0000
  • Ironport-sdr: 8K05o5Smf0O3xPGbO1WCyBp+X1hf38iHeQjtJUsbuJPetvlSFcBSQ9F+1N/jff0xPg4vYWKiUk 5ZzMxP/ixsPg==
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHWVo856A8ZAu2mDEGOBIlrR83SyQ==
  • Thread-topic: [XTF] xenbus: Don't wait if the response ring is full


> On 9. Jul 2020, at 20:46, Julien Grall <julien@xxxxxxx> wrote:
> 
> 
> From: Julien Grall <jgrall@xxxxxxxxxx>
> 
> XenStore response can be bigger than the response ring. In this case,
> it is possible to have the ring full (e.g cons = 19 and prod = 1043).
> 
> However, XTF will consider that there is no data and therefore wait for
> more input. This will result to block indefinitely as the ring is full.
> 
> This can be solved by avoiding to mask the difference between prod and
> cons.
> 
> Signed-off-by: Julien Grall <jgrall@xxxxxxxxxx>
> ---
> common/xenbus.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/common/xenbus.c b/common/xenbus.c
> index 24fff4872372..f3bb30ac693f 100644
> --- a/common/xenbus.c
> +++ b/common/xenbus.c
> @@ -75,7 +75,7 @@ static void xenbus_read(void *data, size_t len)
>         uint32_t prod = ACCESS_ONCE(xb_ring->rsp_prod);
>         uint32_t cons = ACCESS_ONCE(xb_ring->rsp_cons);
> 
> -        part = mask_xenbus_idx(prod - cons);
> +        part = prod - cons;
> 
>         /* No data?  Kick xenstored and wait for it to produce some data. */
>         if ( !part )
>
> 2.17.1
> 

Reviewed-by: Pawel Wieczorkiewicz <wipawel@xxxxxxxxx>



Amazon Development Center Germany GmbH
Krausenstr. 38
10117 Berlin
Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss
Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B
Sitz: Berlin
Ust-ID: DE 289 237 879



 


Rackspace

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