Hi Stefan,
On 2021/2/23 17:40, Stefan Hajnoczi wrote:
> On Fri, Feb 05, 2021 at 06:13:06PM +0800, Jiahui Cen wrote:
>> This patch series propose to extend the werror=/rerror= mechanism to add
>> a 'retry' feature. It can automatically retry failed I/O requests on error
Insert failed requests into device's list for later retry and handle
queued requests to implement retry_request_cb.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
hw/block/virtio-blk.c | 21 +---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/hw/
Enable retry action when backend's retry timer is available. It would
trigger the timer to do device specific retry action.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
block/block-backend.c | 9 +
1 file changed, 9 insertions(+)
diff --git a/block/block-backend.c b/
Add a new error action 'retry' to support retry on errors.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
blockdev.c | 2 ++
qapi/block-core.json | 9 +++--
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/blockdev.c b/blockdev.c
index b250b9b959..
Add "retry_interval" and "retry_timeout" parameter for drive and device
option. These parameter are valid only when werror/rerror=retry.
eg. --drive file=image,rerror=retry,retry_interval=1000,retry_timeout=5000
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
b
Add a timer to regularly trigger retry on errors.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
block/block-backend.c | 21
1 file changed, 21 insertions(+)
diff --git a/block/block-backend.c b/block/block-backend.c
index e493f17515..3a9d55cbe3 100644
--- a/block
* Rebase to fix compile problems.
* Fix incorrect remove of rehandle list.
* Provide rehandle pause interface.
REF: https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg06560.html
Jiahui Cen (9):
qapi/block-core: Add retry option for error action
block-backend: Introduce retry timer
block-ba
Move the code that retries requests from scsi_dma_restart_bh() to its own,
non-static, function. This will allow us to call it from the
retry_request_cb() of scsi-disk in a future patch.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
hw/scsi/scsi-bus.c | 16
Add retry_request_cb in BlockDevOps to do device specific retry action.
Backend's timer would be registered only when the backend is set 'retry'
on errors and the device supports retry action.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
block/block-backend
Mark failed requests as to be retried and implement retry_request_cb to
handle these requests.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
hw/scsi/scsi-disk.c | 16
1 file changed, 16 insertions(+)
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index
Retry should only be triggered when timeout is not reached, so let's check
timeout before retry. Device should also reset retry_start_time after
successful retry.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
block/block-backend.c | 25 +++-
include/s
Kindly ping.
Any comments and reviews are wellcome :)
Thanks,
Jiahui
On 2021/2/5 18:13, Jiahui Cen wrote:
> A VM in the cloud environment may use a virutal disk as the backend storage,
> and there are usually filesystems on the virtual block device. When backend
> storage is tempora
situations,
the returned error is often an EIO.
To avoid this unavailablity, we can store the failed AIOs, and resend them
later. If the error is temporary, the retries can succeed and the AIOs can
be successfully completed.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
block/block
Not all errors would be fixed, so it is better to add a rehandle timeout
for I/O hang.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
block/block-backend.c | 99 +-
include/sysemu/block-backend.h | 2 +
2 files changed, 100 insertions(+), 1
The I/O hang feature is realized based on a rehandle mechanism.
Each block backend will have a list to store hanging block AIOs,
and a timer to regularly resend these aios. In order to issue
the AIOs again, each block AIOs also need to store its coroutine entry.
Signed-off-by: Jiahui Cen
Signed
nning smoothly when I/O is recovred with this feature enabled.
v2->v3:
* Add a doc to describe I/O hang.
v1->v2:
* Rebase to fix compile problems.
* Fix incorrect remove of rehandle list.
* Provide rehandle pause interface.
Jiahui Cen (9):
block-backend: introduce I/O rehandle info
bl
When resetting virtio-blk, we have to drain all AIOs but do not care about the
results. So it is necessary to disable I/O hang before resetting virtio-blk,
and enable it after resetting.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
hw/block/virtio-blk.c | 8
1 file changed
: Jiahui Cen
Signed-off-by: Ying Fang
---
block/block-backend.c | 60 +++---
include/sysemu/block-backend.h | 2 ++
2 files changed, 58 insertions(+), 4 deletions(-)
diff --git a/block/block-backend.c b/block/block-backend.c
index 90fcc678b5..c16d95a2c9 100644
I/O hang timeout should be different under different situations. So it is
better to provide an option for user to determine I/O hang timeout for
each block device.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
blockdev.c | 11 +++
1 file changed, 11 insertions(+)
diff --git a
Setting a non-zero timeout of I/O hang indicates I/O hang is enabled for the
block backend. And when the block backend is going to be deleted, we should
disable I/O hang.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
block/block-backend.c | 40
Sometimes hypervisor management tools like libvirt may need to monitor
I/O hang events. Let's report I/O hang and I/O hang timeout event via qapi.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
block/block-backend.c | 3 +++
qapi/block-core.json | 26
Give some details about the I/O hang and how to use it.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
docs/io-hang.rst | 45 +
1 file changed, 45 insertions(+)
create mode 100644 docs/io-hang.rst
diff --git a/docs/io-hang.rst b/docs/io
Hi Michael,
On 2020/12/2 17:53, Michael S. Tsirkin wrote:
> On Thu, Nov 19, 2020 at 09:48:32AM +0800, Jiahui Cen wrote:
>> Changes with v9
>> v9->v10:
>> Refactor patch2 to drop useless macros and variables.
>> Split patch2 into two patches.
>
> I tagged this
Insert failed requests into device's list for later retry and handle
queued requests to implement retry_request_cb.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
hw/block/virtio-blk.c | 19 ---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/hw/
g/archive/html/qemu-devel/2020-10/msg06560.html
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
Jiahui Cen (7):
qapi/block-core: Add retry option for error action
block-backend: Introduce retry timer
block-backend: Add device specific retry callback
block-backend: Enable retry actio
Add a new error action 'retry' to support retry on errors.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
blockdev.c | 2 ++
qapi/block-core.json | 4 ++--
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/blockdev.c b/blockdev.c
index 412354b4b6..
Retry should only be triggered when timeout is not reached, so let's check
timeout before retry. Device should also reset retry_start_time after
successful retry.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
block/block-backend.c | 25 +++-
include/s
Add "retry_interval" and "retry_timeout" parameter for drive and device
option. These parameter are valid only when werror/rerror=retry.
eg. --drive file=image,rerror=retry,retry_interval=1000,retry_timeout=5000
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
b
Add retry_request_cb in BlockDevOps to do device specific retry action.
Backend's timer would be registered only when the backend is set 'retry'
on errors and the device supports retry action.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
block/block-backend
Enable retry action when backend's retry timer is available. It would
trigger the timer to do device specific retry action.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
block/block-backend.c | 7 +++
1 file changed, 7 insertions(+)
diff --git a/block/block-backend.c b/
Add a timer to regularly trigger retry on errors.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
block/block-backend.c | 21
1 file changed, 21 insertions(+)
diff --git a/block/block-backend.c b/block/block-backend.c
index ce78d30794..fe775ea298 100644
--- a/block
into build_crs.
Signed-off-by: Jiahui Cen
---
hw/acpi/aml-build.c | 15 ---
hw/i386/acpi-build.c| 3 ++-
hw/pci-host/gpex-acpi.c | 3 ++-
include/hw/acpi/aml-build.h | 4 +++-
4 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/hw/acpi/aml-build.c
differences.
Signed-off-by: Jiahui Cen
---
hw/pci-host/gpex-acpi.c | 11 ++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/hw/pci-host/gpex-acpi.c b/hw/pci-host/gpex-acpi.c
index 071aa11b5c..2b490f3379 100644
--- a/hw/pci-host/gpex-acpi.c
+++ b/hw/pci-host/gpex-acpi.c
+Laszlo
On 2020/12/17 21:29, Jiahui Cen wrote:
> There may be some differences in pci resource assignment between guest os
> and firmware.
>
> Eg. A Bridge with Bus [d2]
> -+-[:d2]---01.0-[d3]01.0
>
> where [d2:01.00] is a pcie-pci-bridge with BAR0 (
Hi Michael,
On 2020/12/18 4:04, Michael S. Tsirkin wrote:
> On Thu, Dec 17, 2020 at 09:29:26PM +0800, Jiahui Cen wrote:
>> There may be some differences in pci resource assignment between guest os
>> and firmware.
>>
>> Eg. A Bridge with Bus [d2]
>>
Hi Michael,
On 2020/12/18 2:29, Michael S. Tsirkin wrote:
> On Thu, Dec 17, 2020 at 09:29:26PM +0800, Jiahui Cen wrote:
>> There may be some differences in pci resource assignment between guest os
>> and firmware.
>>
>> Eg. A Bridge with Bus [d2]
>>
Hi Michael,
On 2020/12/18 2:32, Michael S. Tsirkin wrote:
> On Thu, Dec 17, 2020 at 09:27:47PM +0800, Jiahui Cen wrote:
>> AML needs Address Translation offset to describe how a bridge translates
>> addresses accross the bridge when using an address descriptor, and
>> e
Hi Michael,
On 2020/12/20 3:06, Michael S. Tsirkin wrote:
> On Fri, Dec 18, 2020 at 01:56:29PM +0800, Jiahui Cen wrote:
>> Hi Michael,
>>
>> On 2020/12/18 4:04, Michael S. Tsirkin wrote:
>>> On Thu, Dec 17, 2020 at 09:29:26PM +0800, Jiahui Cen wrote:
>>>
Kindly ping...
On 2020/12/15 20:30, Jiahui Cen wrote:
> A VM in the cloud environment may use a virutal disk as the backend storage,
> and there are usually filesystems on the virtual block device. When backend
> storage is temporarily down, any I/O issued to the virtual block device
>
PXB is now supported on ARM, so let's enable it by default.
Signed-off-by: Jiahui Cen
---
hw/pci-bridge/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/pci-bridge/Kconfig b/hw/pci-bridge/Kconfig
index a51ec716f5..f8df4315ba 100644
--- a/hw/pci-bridge/Kconfig
ze is 0x410 as assigned by EDK2, the allocation would fail.
The diffences could result in resource assignment failure.
Using _DSM #5 method to inform guest os not to ignore the PCI configuration
that firmware has done at boot time could handle the differences.
Signed-off-by: Jiahui Cen
---
h
tps://lore.kernel.org/qemu-devel/20201217132926.4812-1-cenjia...@huawei.com/
Jiahui Cen (6):
acpi: Allow DSDT acpi table changes
acpi: Add addr offset in build_crs
acpi/gpex: Inform os to keep firmware resource map
Kconfig: Enable PXB for ARM_VIRT by default
acpi: Enable pxb unit-test for
No matter whether the pxb is enabled or not, the CONFIG_PXB macro in test
would keep undefined. And since pxb is now enabled for ARM Virt machine
by default, let's enable pxb unit-test by removing the CONFIG_PXB.
Signed-off-by: Jiahui Cen
---
tests/qtest/bios-tables-test.c | 4
1
Signed-off-by: Jiahui Cen
---
tests/qtest/bios-tables-test-allowed-diff.h | 5 +
1 file changed, 5 insertions(+)
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h
b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8b..42418e58e7 100644
--- a/tests/qtest/bios-tables-test
d bus
number into build_crs.
Signed-off-by: Jiahui Cen
---
hw/acpi/aml-build.c | 18 ++
hw/i386/acpi-build.c| 3 ++-
hw/pci-host/gpex-acpi.c | 3 ++-
include/hw/acpi/aml-build.h | 4 +++-
4 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/hw/acp
@ -3058,9 +3030,14 @@
{
Return (Buffer (One)
{
- 0x01
/* . */
+ 0x21
/* ! */
})
}
+
+If (Arg2 == 0x05
PXB is now supported on ARM, so let's enable it by default.
Signed-off-by: Jiahui Cen
---
hw/pci-bridge/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/pci-bridge/Kconfig b/hw/pci-bridge/Kconfig
index a51ec716f5..f8df4315ba 100644
--- a/hw/pci-bridge/Kconfig
ze is 0x410 as assigned by EDK2, the allocation would fail.
The diffences could result in resource assignment failure.
Using _DSM #5 method to inform guest os not to ignore the PCI configuration
that firmware has done at boot time could handle the differences.
Signed-off-by: Jiahui Cen
---
h
Exclude the resources of extra root bridges from PCI0's _CRS. Otherwise,
the resource windows would overlap in guest, and the IO resource window
would fail to be registered.
Signed-off-by: Jiahui Cen
---
hw/pci-host/gpex-acpi.c | 64 +---
1 file changed, 43 insertions(+
d bus
number into build_crs.
Signed-off-by: Jiahui Cen
---
hw/acpi/aml-build.c | 18 ++
hw/i386/acpi-build.c| 3 ++-
hw/pci-host/gpex-acpi.c | 3 ++-
include/hw/acpi/aml-build.h | 4 +++-
4 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/hw/acp
.@huawei.com/
[3]: https://lore.kernel.org/lkml/20201218062335.5320-1-cenjia...@huawei.com/
Jiahui Cen (8):
acpi: Allow DSDT acpi table changes
acpi: Add addr offset in build_crs
acpi/gpex: Inform os to keep firmware resource map
acpi/gpex: Exclude pxb's resources from PCI0
acpi/gpe
Signed-off-by: Jiahui Cen
---
tests/qtest/bios-tables-test-allowed-diff.h | 5 +
1 file changed, 5 insertions(+)
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h
b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8b..42418e58e7 100644
--- a/tests/qtest/bios-tables-test
No matter whether the pxb is enabled or not, the CONFIG_PXB macro in test
would keep undefined. And since pxb is now enabled for ARM Virt machine
by default, let's enable pxb unit-test by removing the CONFIG_PXB.
Signed-off-by: Jiahui Cen
---
tests/qtest/bios-tables-test.c | 4
1
0x00401FFF, // Range Maximum
-0x, // Translation Offset
-0x1000, // Length
-,, , AddressRangeMemory, TypeStatic)
-})
-}
}
Device (\_SB.GED)
/20201218062335.5320-1-cenjia...@huawei.com/
Signed-off-by: Jiahui Cen
---
hw/pci-host/gpex-acpi.c | 11 +--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/hw/pci-host/gpex-acpi.c b/hw/pci-host/gpex-acpi.c
index 4bf1e94309..95a7a0f12b 100644
--- a/hw/pci-host/gpex-acpi.c
On 2020/12/29 21:36, Igor Mammedov wrote:
> On Wed, 23 Dec 2020 17:08:30 +0800
> Jiahui Cen wrote:
>
>> AML needs Address Translation offset to describe how a bridge translates
>> addresses accross the bridge when using an address descriptor, and
>> especially on
Hi Michael,
On 2021/1/13 22:00, Michael S. Tsirkin wrote:
> On Thu, Jan 07, 2021 at 07:40:37PM +0800, Jiahui Cen wrote:
>> Commit fe1127da11 ("unit-test: Add the binary file and clear diff.h") does
>> not
>> use the up-to-date expected file for pxb for ARM virt.
,, , AddressRangeMemory, TypeStatic)
+})
Name (SUPP, Zero)
Name (CTRL, Zero)
Method (_OSC, 4, NotSerialized) // _OSC: Operating System
Capabilities
Fixes: fe1127da11 ("unit-test: Add the binary file and clear diff.h")
Acked-by: Igor Ma
e.kernel.org/qemu-devel/20201217132926.4812-1-cenjia...@huawei.com/
[3]:
https://lore.kernel.org/qemu-devel/dca69f55-dfd1-3f97-dc3f-13eeedec5...@huawei.com/
Acked-by: Igor Mammedov
Signed-off-by: Jiahui Cen
Jiahui Cen (8):
acpi: Allow DSDT acpi table changes
acpi: Fix unmatched expected DSD
ff-by: Jiahui Cen
---
hw/pci-host/gpex-acpi.c | 20 ++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/hw/pci-host/gpex-acpi.c b/hw/pci-host/gpex-acpi.c
index 11b3db8f71..cb13e75d2f 100644
--- a/hw/pci-host/gpex-acpi.c
+++ b/hw/pci-host/gpex-acpi.c
@@ -112,10 +1
Acked-by: Igor Mammedov
Signed-off-by: Jiahui Cen
---
tests/qtest/bios-tables-test-allowed-diff.h | 5 +
1 file changed, 5 insertions(+)
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h
b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8b..42418e58e7 100644
--- a/tests
PXB is now supported on ARM, so let's compile for arm_virt machine.
Acked-by: Igor Mammedov
Signed-off-by: Jiahui Cen
---
hw/pci-bridge/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/pci-bridge/Kconfig b/hw/pci-bridge/Kconfig
index a51ec716f5..f8df4315ba 1
No matter whether the pxb is enabled or not, the CONFIG_PXB macro in test
would keep undefined. And since pxb is now enabled for ARM Virt machine
by default, let's enable pxb unit-test by removing the CONFIG_PXB.
Acked-by: Igor Mammedov
Signed-off-by: Jiahui Cen
---
tests/qtest/bios-t
})
}
+
+If ((Arg2 == 0x05))
+{
+ Return (Zero)
+}
}
Return (Buffer (One)
Acked-by: Igor Mammedov
Signed-off-by: Jiahui Cen
---
tests/data/acpi/microvm/DSDT.pcie
Exclude the resources of extra root bridges from PCI0's _CRS. Otherwise,
the resource windows would overlap in guest, and the IO resource window
would fail to be registered.
Acked-by: Igor Mammedov
Signed-off-by: Jiahui Cen
---
hw/pci-host/gpex-acpi.c | 64 +---
1 file ch
d bus
number into build_crs.
Acked-by: Igor Mammedov
Signed-off-by: Jiahui Cen
---
hw/acpi/aml-build.c | 18 ++
hw/i386/acpi-build.c| 3 ++-
hw/pci-host/gpex-acpi.c | 3 ++-
include/hw/acpi/aml-build.h | 4 +++-
4 files changed, 17 insertions(+), 11 deletions(-)
On 2019/10/24 22:34, Daniel P. Berrangé wrote:
> On Thu, Oct 24, 2019 at 09:53:24PM +0800, cenjiahui wrote:
>> On 2019/10/24 17:52, Daniel P. Berrangé wrote:
>>> On Wed, Oct 23, 2019 at 11:32:14AM +0800, cenjiahui wrote:
>>>> From: Jiahui Cen
>>>>
On 2020/12/29 21:41, Igor Mammedov wrote:
> On Wed, 23 Dec 2020 17:08:31 +0800
> Jiahui Cen wrote:
>
>> There may be some differences in pci resource assignment between guest os
>> and firmware.
>>
>> Eg. A Bridge with Bus [d2]
>> -+-[:d2]---01.0
On 2020/12/31 5:17, Michael S. Tsirkin wrote:
> On Tue, Dec 29, 2020 at 02:47:35PM +0100, Igor Mammedov wrote:
>> On Wed, 23 Dec 2020 17:08:33 +0800
>> Jiahui Cen wrote:
>>
>>> The overlap check of IO resource window would fail when Linux kernel
>>> regis
On 2020/12/29 21:50, Igor Mammedov wrote:
> On Wed, 23 Dec 2020 17:08:34 +0800
> Jiahui Cen wrote:
> subj
> s/by default//
> s/enable/compile/
>
>> PXB is now supported on ARM, so let's enable it by default.
> s/it by default/for arm_virt machine/
> s/enab
On 2020/12/31 5:22, Michael S. Tsirkin wrote:
> On Tue, Dec 29, 2020 at 02:41:42PM +0100, Igor Mammedov wrote:
>> On Wed, 23 Dec 2020 17:08:31 +0800
>> Jiahui Cen wrote:
>>
>>> There may be some differences in pci resource assignment between guest os
>>>
On 2021/1/5 8:35, Igor Mammedov wrote:
> On Wed, 30 Dec 2020 16:22:08 -0500
> "Michael S. Tsirkin" wrote:
>
>> On Tue, Dec 29, 2020 at 02:41:42PM +0100, Igor Mammedov wrote:
>>> On Wed, 23 Dec 2020 17:08:31 +0800
>>> Jiahui Cen wrote:
>>>
Hi Kevin,
What do you think of these patches?
Thanks,
Jiahui
On 2020/12/15 20:30, Jiahui Cen wrote:
> A VM in the cloud environment may use a virutal disk as the backend storage,
> and there are usually filesystems on the virtual block device. When backend
> storage is temporarily down
On 2021/1/6 21:29, Igor Mammedov wrote:
> On Tue, 5 Jan 2021 09:53:49 +0800
> Jiahui Cen wrote:
>
>> On 2021/1/5 8:35, Igor Mammedov wrote:
>>> On Wed, 30 Dec 2020 16:22:08 -0500
>>> "Michael S. Tsirkin" wrote:
>>>
>>>&g
m/
[3]:
https://lore.kernel.org/qemu-devel/dca69f55-dfd1-3f97-dc3f-13eeedec5...@huawei.com/
Jiahui Cen (8):
acpi: Allow DSDT acpi table changes
acpi: Fix unmatched expected DSDT.pxb file
acpi: Add addr offset in build_crs
acpi/gpex: Inform os to keep firmware resource map
acpi/gpex: Exclude pxb's
Signed-off-by: Jiahui Cen
---
tests/qtest/bios-tables-test-allowed-diff.h | 5 +
1 file changed, 5 insertions(+)
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h
b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8b..42418e58e7 100644
--- a/tests/qtest/bios-tables-test
PXB is now supported on ARM, so let's compile for arm_virt machine.
Signed-off-by: Jiahui Cen
---
hw/pci-bridge/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/pci-bridge/Kconfig b/hw/pci-bridge/Kconfig
index a51ec716f5..f8df4315ba 100644
--- a/hw/pci-b
0x0080, // Length
+,, , AddressRangeMemory, TypeStatic)
+})
Name (SUPP, Zero)
Name (CTRL, Zero)
Method (_OSC, 4, NotSerialized) // _OSC: Operating System
Capabilities
Fixes: fe1127da11 ("unit-test
No matter whether the pxb is enabled or not, the CONFIG_PXB macro in test
would keep undefined. And since pxb is now enabled for ARM Virt machine
by default, let's enable pxb unit-test by removing the CONFIG_PXB.
Signed-off-by: Jiahui Cen
---
tests/qtest/bios-tables-test.c | 4
1
d bus
number into build_crs.
Signed-off-by: Jiahui Cen
---
hw/acpi/aml-build.c | 18 ++
hw/i386/acpi-build.c| 3 ++-
hw/pci-host/gpex-acpi.c | 3 ++-
include/hw/acpi/aml-build.h | 4 +++-
4 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/hw/acp
ze is 0x410 as assigned by EDK2, the allocation would fail.
The diffences could result in resource assignment failure.
Using _DSM #5 method to inform guest os not to ignore the PCI configuration
that firmware has done at boot time could handle the differences.
Signed-off-by: Jiahui Cen
---
h
Exclude the resources of extra root bridges from PCI0's _CRS. Otherwise,
the resource windows would overlap in guest, and the IO resource window
would fail to be registered.
Signed-off-by: Jiahui Cen
---
hw/pci-host/gpex-acpi.c | 64 +---
1 file changed, 43 insertions(+
ne)
{
- 0x01
// .
+ 0x21
// !
})
}
+
+If ((Arg2 == 0x05))
+ {
+Return (Zero)
+
Kindly ping...
Thanks,
Jiahui
On 2021/1/7 19:40, Jiahui Cen wrote:
> This patch series adds some fixes for ARM virt machine pxb support.
> 1. Pass addr offset for IO, MMIO and bus number when builing crs, because
> the addr_trans is needed to describe an addr resource. [1]
> 2. Inf
-off-by: Yubo Miao
Signed-off-by: Jiahui Cen
---
hw/arm/virt-acpi-build.c | 25 +
1 file changed, 25 insertions(+)
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
index fd9c2007c0..7f57ab6938 100644
--- a/hw/arm/virt-acpi-build.c
+++ b/hw/arm/virt-acpi
obtained from the config via two APIs:
pci_bridge_get_base and pci_bridge_get_limit
Signed-off-by: Yubo Miao
Signed-off-by: Jiahui Cen
---
hw/acpi/aml-build.c | 273 +
hw/i386/acpi-build.c| 293
include/hw/acpi/aml
Changes with v8
v8->v9:
Rebase to master
Changes with v7
v7->v8:
Fix the error:no member named 'fw_cfg' in 'struct PCMachineState'
Changes with v6
v6->v7:
Refactor fw_cfg_write_extra_pci_roots
Add API PCI_GET_PCIE_HOST_STATE
Fix typos
Changes with v5
v5->v6: stat crs_range_insert in aml_build.h
From: Yubo Miao
Add the binary file DSDT.pxb and clear bios-tables-test-allowed-diff.h
Signed-off-by: Yubo Miao
Signed-off-by: Jiahui Cen
---
tests/data/acpi/virt/DSDT.pxb | Bin 0 -> 7802 bytes
tests/qtest/bios-tables-test-allowed-diff.h | 1 -
2 files changed, 1 delet
From: Yubo Miao
Write the extra roots into the fw_cfg, therefore the uefi could
get the extra roots. Only if the uefi knows there are extra roots,
the config space of devices behind the root could be obtained.
Signed-off-by: Yubo Miao
Signed-off-by: Jiahui Cen
---
hw/arm/virt.c
DSDT.
Signed-off-by: Yubo Miao
Signed-off-by: Jiahui Cen
---
hw/pci-host/gpex-acpi.c | 118 +++-
1 file changed, 67 insertions(+), 51 deletions(-)
diff --git a/hw/pci-host/gpex-acpi.c b/hw/pci-host/gpex-acpi.c
index dbb350a837..86ddb52cbd 100644
--- a/hw/pci
// Range Maximum
0x, // Translation Offset
-0x0100, // Length
+ 0x0080, // Length
Signed-off-by: Yubo Miao
Signed-off-by: Jiahui Cen
---
tests/qtest/bios-tables-test-allowed-diff.h | 1 +
1 f
From: Yubo Miao
Add testcase for pxb to make sure the ACPI table is correct for guest.
Signed-off-by: Yubo Miao
Signed-off-by: Jiahui Cen
---
tests/qtest/bios-tables-test.c | 58 ++
1 file changed, 52 insertions(+), 6 deletions(-)
diff --git a/tests/qtest
of devices behind it.
Signed-off-by: Yubo Miao
Signed-off-by: Jiahui Cen
---
hw/arm/virt-acpi-build.c | 5 +-
hw/pci-host/gpex-acpi.c | 129 ---
2 files changed, 111 insertions(+), 23 deletions(-)
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi
On 2020/11/5 4:05, Laszlo Ersek wrote:
> +Phil, +Gerd
>
> On 11/04/20 20:54, Laszlo Ersek wrote:
>> +Marcel
>>
>> On 11/03/20 13:01, Jiahui Cen wrote:
>>> From: Yubo Miao
>>>
>>> Write the extra roots into the fw_cfg, therefore the uefi
Hi Phil,
On 2020/11/5 5:11, Philippe Mathieu-Daudé wrote:
> Hi Laszlo,
>
> On 11/4/20 9:05 PM, Laszlo Ersek wrote:
>> +Phil, +Gerd
>>
>> On 11/04/20 20:54, Laszlo Ersek wrote:
>>> +Marcel
>>>
>>> On 11/03/20 13:01, Jiahui Cen wrote:
>>
The I/O hang feature is realized based on a rehandle mechanism.
Each block backend will have a list to store hanging block AIOs,
and a timer to regularly resend these aios. In order to issue
the AIOs again, each block AIOs also need to store its coroutine entry.
Signed-off-by: Jiahui Cen
Signed
nning smoothly when I/O is recovred with this feature enabled.
v1->v2:
* Rebase to fix compile problems.
* Fix incorrect remove of rehandle list.
* Provide rehandle pause interface.
Jiahui Cen (8):
block-backend: introduce I/O rehandle info
block-backend: rehandle block aios when EIO
block
When resetting virtio-blk, we have to drain all AIOs but do not care about the
results. So it is necessary to disable I/O hang before resetting virtio-blk,
and enable it after resetting.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
hw/block/virtio-blk.c | 8
1 file changed
situations,
the returned error is often an EIO.
To avoid this unavailablity, we can store the failed AIOs, and resend them
later. If the error is temporary, the retries can succeed and the AIOs can
be successfully completed.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
block/block
Sometimes hypervisor management tools like libvirt may need to monitor
I/O hang events. Let's report I/O hang and I/O hang timeout event via qapi.
Signed-off-by: Jiahui Cen
Signed-off-by: Ying Fang
---
block/block-backend.c | 3 +++
qapi/block-core.json | 26
1 - 100 of 114 matches
Mail list logo