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

Re: [Xen-devel] [PATCH 10/11] xen/arm: vpl011: Modify handle_ring_read and buffer_append to read/append vpl011 data



On Tue, Feb 21, 2017 at 04:56:07PM +0530, Bhupinder Thakur wrote:
> MOdifications in the following functions:

s/MO/Mo

> 
>     - handle_ring_read() - to allow reading data from both PV or vpl011 OUT 
> ring buffers
>       based on which port received the event
>     - buffer_append() - append data received for either PV or vp011 OUT ring 
> buffer
> 
> Signed-off-by: Bhupinder Thakur <bhupinder.thakur@xxxxxxxxxx>
> ---
>  tools/console/daemon/io.c | 21 ++++++++++++++++-----
>  1 file changed, 16 insertions(+), 5 deletions(-)
> 
> diff --git a/tools/console/daemon/io.c b/tools/console/daemon/io.c
> index b1aa615..4e531e7 100644
> --- a/tools/console/daemon/io.c
> +++ b/tools/console/daemon/io.c
> @@ -163,12 +163,11 @@ static int write_with_timestamp(int fd, const char 
> *data, size_t sz,
>       return 0;
>  }
>  
> -static void buffer_append(struct domain *dom)
> +static void buffer_append(struct domain *dom, struct xencons_interface 
> *intf, int port)
>  {
>       struct buffer *buffer = &dom->buffer;
>       XENCONS_RING_IDX cons, prod, size;
> -     struct xencons_interface *intf = dom->interface;
> -
> +     

Any reason to add a tab here?
>       cons = intf->out_cons;
>       prod = intf->out_prod;
>       xen_mb();
> @@ -192,7 +191,8 @@ static void buffer_append(struct domain *dom)
>  
>       xen_mb();
>       intf->out_cons = cons;
> -     xenevtchn_notify(dom->xce_handle, dom->local_port);
> +
> +     xenevtchn_notify(dom->xce_handle, port);
>  
>       /* Get the data to the logfile as early as possible because if
>        * no one is listening on the console pty then it will fill up
> @@ -961,6 +961,7 @@ static void handle_tty_write(struct domain *dom)
>  static void handle_ring_read(struct domain *dom)
>  {
>       xenevtchn_port_or_error_t port;
> +     struct xencons_interface *intf;
>  
>       if (dom->is_dead)
>               return;
> @@ -970,7 +971,15 @@ static void handle_ring_read(struct domain *dom)
>  
>       dom->event_count++;
>  
> -     buffer_append(dom);
> +     /*
> +     * select the interface based on the port which the event received
> +     */

Please remove this comment.

> +     if ( port == dom->vpl011_local_port )
> +             intf = dom->vpl011_interface;
> +     else
> +             intf = dom->interface;
> +
> +     buffer_append(dom, intf, port);
>  
>       if (dom->event_count < RATE_LIMIT_ALLOWANCE)
>               (void)xenevtchn_unmask(dom->xce_handle, port);
> @@ -1161,6 +1170,8 @@ void handle_io(void)
>                               d->next_period = now + RATE_LIMIT_PERIOD;
>                               if (d->event_count >= RATE_LIMIT_ALLOWANCE) {
>                                       (void)xenevtchn_unmask(d->xce_handle, 
> d->local_port);
> +                                     if ( d->vpl011_initialized )
> +                                             
> (void)xenevtchn_unmask(d->xce_handle, d->vpl011_local_port);
>                               }
>                               d->event_count = 0;
>                       }
> -- 
> 2.7.4
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> https://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

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