[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Hight Processor time of Socket communciation
From: |
Jiahuan Zhang |
Subject: |
Re: [Qemu-devel] Hight Processor time of Socket communciation |
Date: |
Wed, 19 Apr 2017 12:04:47 +0200 |
On 19 April 2017 at 11:55, Peter Maydell <address@hidden> wrote:
> On 19 April 2017 at 10:25, Jiahuan Zhang <address@hidden> wrote:
> > On 19 April 2017 at 11:15, Peter Maydell <address@hidden>
> wrote:
> >> What is happening is that the guest kernel's serial driver
> >> has a loop that (simplified) looks like this:
> >>
> >> do {
> >> if (pl011_read(REG_FR) & FR_TXFF)
> >> break; /* fifo full, try again later */
> >> pl011_write(buffer[x], REG_DR); /* send one byte */
> >> x++;
> >> } while (x != len);
> >>
> >> This is a lot of guest CPU instructions (and two callouts
> >> to QEMU's device emulation) for every single byte.
> >>
> > Hi, no, I am not using any kernel driver and I only test the guest to
> host
> > data transfer.
>
> OK, then the equivalent loop is this one:
>
> > /*
> > * write_to_uart(): write data to serial port
> > */
> > void write_to_uart(char* out, uint32_t writeSize){
> > int i;
> > for(i=0; i<writeSize; i++){
> > *UART1 =(unsigned char)(*(out+i));
> > }
> > }
>
> except that your code is broken because it's not
> checking that the FIFO is ready to receive the character
> so it will drop data sometimes.
>
Okay. Thank you for pointing this out.
I would like to make a new serial device based on pl011,
but containing a buffer for guest-to-host data transfer.
I expect it would help to reduce the processor time while communicating.
At this moment, I focus on having a better performance.
regards,
Jiahuan
>
> The point is the same -- you're feeding the data to
> the UART byte-at-a-time.
>
> thanks
> -- PMM
>
- [Qemu-devel] Hight Processor time of Socket communciation, Jiahuan Zhang, 2017/04/18
- Re: [Qemu-devel] Hight Processor time of Socket communciation, Peter Maydell, 2017/04/18
- Re: [Qemu-devel] Hight Processor time of Socket communciation, Jiahuan Zhang, 2017/04/19
- Re: [Qemu-devel] Hight Processor time of Socket communciation, Peter Maydell, 2017/04/19
- Re: [Qemu-devel] Hight Processor time of Socket communciation, Jiahuan Zhang, 2017/04/19
- Re: [Qemu-devel] Hight Processor time of Socket communciation, Peter Maydell, 2017/04/19
- Re: [Qemu-devel] Hight Processor time of Socket communciation,
Jiahuan Zhang <=
- Re: [Qemu-devel] Hight Processor time of Socket communciation, Peter Maydell, 2017/04/19
- Re: [Qemu-devel] Hight Processor time of Socket communciation, Jiahuan Zhang, 2017/04/19
- Re: [Qemu-devel] Hight Processor time of Socket communciation, Peter Maydell, 2017/04/19