On Mon May 5, 2025 at 3:37 PM AEST, Akihiko Odaki wrote:
> On 2025/05/02 12:04, Nicholas Piggin wrote:
>> This function is duplicated 3 times, with more potential future users.
>> Factor it into libqos, using qtest_memset instead of qtest_writel to
>> clear the message just because that looks nicer with the qtest_memread
>> used to read it.
>> 
>> Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
>> Signed-off-by: Nicholas Piggin <npig...@gmail.com>
>> ---
>>   tests/qtest/libqos/pci.h               |  2 ++
>>   tests/qtest/libqos/pci.c               | 48 ++++++++++++++++++++++++++
>>   tests/qtest/libqos/virtio-pci-modern.c | 31 +++--------------
>>   tests/qtest/libqos/virtio-pci.c        | 40 ++++-----------------
>>   4 files changed, 62 insertions(+), 59 deletions(-)
>> 
>> diff --git a/tests/qtest/libqos/pci.h b/tests/qtest/libqos/pci.h
>> index 83896145235..9f8f154c301 100644
>> --- a/tests/qtest/libqos/pci.h
>> +++ b/tests/qtest/libqos/pci.h
>> @@ -92,6 +92,8 @@ void qpci_msix_enable(QPCIDevice *dev);
>>   void qpci_msix_disable(QPCIDevice *dev);
>>   bool qpci_msix_pending(QPCIDevice *dev, uint16_t entry);
>>   bool qpci_msix_masked(QPCIDevice *dev, uint16_t entry);
>> +bool qpci_msix_test_interrupt(QPCIDevice *dev, uint32_t msix_entry,
>> +                              uint64_t msix_addr, uint32_t msix_data);
>>   uint16_t qpci_msix_table_size(QPCIDevice *dev);
>>   
>>   uint8_t qpci_config_readb(QPCIDevice *dev, uint8_t offset);
>> diff --git a/tests/qtest/libqos/pci.c b/tests/qtest/libqos/pci.c
>> index a59197b9922..773fd1fb6cf 100644
>> --- a/tests/qtest/libqos/pci.c
>> +++ b/tests/qtest/libqos/pci.c
>> @@ -351,6 +351,54 @@ bool qpci_msix_masked(QPCIDevice *dev, uint16_t entry)
>>       }
>>   }
>>   
>> +/**
>> + * qpci_msix_test_interrupt - test whether msix interrupt has been raised
>
> Nitpick: Let's write as "MSI-X" instead of msix in documentation.

Okay.

>> + * @dev: PCI device
>> + * @msix_entry: msix entry to test
>> + * @msix_addr: address of msix message
>
> Perhaps deriving the address in this function may make things simpler by 
> removing the documentation and assertion code and not requiring callers 
> to pass it.

addr and data could both be derived from the MSI-X table, but passing
them in here is how some of the existing helpers are structured, so I
will leave it like this. I think I have slight preference for this way
but if there is strong preference for deriving them implicitly then it
could be a follow up patch.

>
>> + * @msix_data: expected msix message payload
>> + *
>> + * This tests whether the msix source has raised an interrupt. If the msix
>
> Another nitpick: "whether the device has raised an MSI-X interrupt" - 
> "msix source" is not a pharsed used elsewhere and it can raise other 
> kind of interrupts too so let's make the kind of interrupt specific.

Sure.

Thanks,
Nick

Reply via email to