qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Juan Quintela <quintela@redhat.com>
To: Richard Henderson <richard.henderson@linaro.org>
Cc: "Philippe Mathieu-Daudé" <philmd@linaro.org>,
	qemu-devel@nongnu.org,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Gavin Shan" <gshan@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Evgeny Iakovlev" <eiakovlev@linux.microsoft.com>,
	qemu-arm@nongnu.org
Subject: Re: [PATCH-for-8.2 v4 09/10] hw/char/pl011: Add transmit FIFO to PL011State
Date: Thu, 16 Nov 2023 16:48:38 +0100	[thread overview]
Message-ID: <87o7fthf6x.fsf@secure.mitica> (raw)
In-Reply-To: <45ef60fe-dcb6-461d-97e1-d19e5174075d@linaro.org> (Richard Henderson's message of "Thu, 9 Nov 2023 15:24:16 -0800")

Richard Henderson <richard.henderson@linaro.org> wrote:
> On 11/9/23 11:28, Philippe Mathieu-Daudé wrote:
>> @@ -436,6 +438,24 @@ static const VMStateDescription vmstate_pl011_clock = {
>>       }
>>   };
>>   +static bool pl011_xmit_fifo_state_needed(void *opaque)
>> +{
>> +    PL011State* s = opaque;
>> +
>> +    return !fifo8_is_empty(&s->xmit_fifo);
>> +}
>> +
>> +static const VMStateDescription vmstate_pl011_xmit_fifo = {
>> +    .name = "pl011/xmit_fifo",
>> +    .version_id = 1,
>> +    .minimum_version_id = 1,
>> +    .needed = pl011_xmit_fifo_state_needed,
>> +    .fields = (VMStateField[]) {
>> +        VMSTATE_FIFO8(xmit_fifo, PL011State),
>> +        VMSTATE_END_OF_LIST()
>> +    }
>> +};
>> +
>>   static int pl011_post_load(void *opaque, int version_id)
>>   {
>>       PL011State* s = opaque;
>> @@ -487,7 +507,11 @@ static const VMStateDescription vmstate_pl011 = {
>>       .subsections = (const VMStateDescription * []) {
>>           &vmstate_pl011_clock,
>>           NULL
>> -    }
>> +    },
>> +    .subsections = (const VMStateDescription * []) {
>> +        &vmstate_pl011_xmit_fifo,
>> +        NULL
>> +    },
>>   };
>
> It just occurred to me that you may need a vmstate_pl011 pre_load() to
> empty the FIFO, which will then be filled if and only if the saved
> vmstate_pl011_xmit_fifo subsection is present.
>
> Juan, have I got this correct about how migration would or should handle a missing subsection?

I hav'nt looked about how the device is created. But if it is created
with the fifo empty you don't need the pre_load().

I have no idea about this device, but sometimes it just happens that if
the fifo has data, you need to put an irq somewhere or mark it some
place that there is pending job on this device.

Later, Juan.



  reply	other threads:[~2023-11-16 15:49 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-09 19:28 [PATCH-for-8.2 v4 00/10] hw/char/pl011: Implement TX (async) FIFO to avoid blocking the main loop Philippe Mathieu-Daudé
2023-11-09 19:28 ` [PATCH-for-8.2 v4 01/10] util/fifo8: Allow fifo8_pop_buf() to not populate popped length Philippe Mathieu-Daudé
2023-11-09 23:12   ` Richard Henderson
2023-11-09 19:28 ` [PATCH-for-8.2 v4 02/10] util/fifo8: Introduce fifo8_peek_buf() Philippe Mathieu-Daudé
2023-11-09 23:15   ` Richard Henderson
2023-11-09 19:28 ` [PATCH-for-8.2 v4 03/10] hw/char/pl011: Split RX/TX path of pl011_reset_fifo() Philippe Mathieu-Daudé
2023-11-09 19:28 ` [PATCH-for-8.2 v4 04/10] hw/char/pl011: Extract pl011_write_txdata() from pl011_write() Philippe Mathieu-Daudé
2023-11-09 23:17   ` Richard Henderson
2023-12-13  9:13     ` Philippe Mathieu-Daudé
2023-11-09 19:28 ` [PATCH-for-8.2 v4 05/10] hw/char/pl011: Extract pl011_read_rxdata() from pl011_read() Philippe Mathieu-Daudé
2023-11-09 19:28 ` [PATCH-for-8.2 v4 06/10] hw/char/pl011: Warn when using disabled transmitter Philippe Mathieu-Daudé
2023-11-09 19:28 ` [PATCH-for-8.2 v4 07/10] hw/char/pl011: Check if receiver is enabled Philippe Mathieu-Daudé
2023-11-09 19:28 ` [PATCH-for-8.2 v4 08/10] hw/char/pl011: Rename RX FIFO methods Philippe Mathieu-Daudé
2023-11-09 19:28 ` [PATCH-for-8.2 v4 09/10] hw/char/pl011: Add transmit FIFO to PL011State Philippe Mathieu-Daudé
2023-11-09 23:24   ` Richard Henderson
2023-11-16 15:48     ` Juan Quintela [this message]
2024-07-17 13:34       ` Philippe Mathieu-Daudé
2023-11-09 19:28 ` [PATCH-for-8.2 v4 10/10] hw/char/pl011: Implement TX FIFO Philippe Mathieu-Daudé
2023-11-09 23:34   ` Richard Henderson
2023-11-22 10:31   ` Marc-André Lureau
2023-11-22 10:38     ` Daniel P. Berrangé
2023-11-24 12:47       ` Philippe Mathieu-Daudé
2023-11-09 19:29 ` [PATCH-for-8.2 v4 00/10] hw/char/pl011: Implement TX (async) FIFO to avoid blocking the main loop Peter Maydell
2023-11-09 20:59   ` Philippe Mathieu-Daudé
2023-11-13 13:11     ` Peter Maydell
2023-11-13 15:44       ` Philippe Mathieu-Daudé
2023-11-24 10:24       ` Alex Bennée
2024-01-05  7:50 ` Mark Cave-Ayland
2024-01-10  7:05   ` Mark Cave-Ayland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87o7fthf6x.fsf@secure.mitica \
    --to=quintela@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=eiakovlev@linux.microsoft.com \
    --cc=gshan@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).