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
>>>>
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-back
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
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
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
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 ++
2
-by: 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
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
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
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
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
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/acpi/aml
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
---
hw/pci
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 file
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-bridge
0x0080, // Length
+,, , AddressRangeMemory, TypeStatic)
+})
Name (SUPP, Zero)
Name (CTRL, Zero)
Method (_OSC, 4, NotSerialized) // _OSC: Operating System
Capabilities
Fixes: fe1127da11 ("unit-test
]:
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 resources
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
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(+), 21
ne)
{
- 0x01
// .
+ 0x21
// !
})
}
+
+If ((Arg2 == 0x05))
+ {
+Return (Zero)
+
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
the 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 (
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 b/hw
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..47c0e6db52
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/sysemu
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/block
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/block
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 action on error
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.c | 8
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
>&
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
---
hw/pci
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(+), 21
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/acpi/aml
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
+++ b
om/
[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/gpex: Append px
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 file
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
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
>
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 file
@ -3058,9 +3030,14 @@
{
Return (Buffer (One)
{
- 0x01
/* . */
+ 0x21
/* ! */
})
}
+
+If (Arg2 == 0x05
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
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
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
---
hw/pci
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/acpi/aml
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
+++ 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
Add bus property to virt machine for primary PCI root bus and use it to add
extra pci roots behind it.
Signed-off-by: Jiahui Cen
Signed-off-by: Yubo Miao
---
hw/arm/virt.c | 7 +--
include/hw/arm/virt.h | 1 +
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/hw/arm
of devices behind it.
Signed-off-by: Yubo Miao
Signed-off-by: Jiahui Cen
---
hw/arm/virt-acpi-build.c | 6 ++-
hw/pci-host/gpex-acpi.c| 54
include/hw/pci-host/gpex.h | 1 +
3 files changed, 59 insertions(+), 2 deletions(-)
diff --git a/hw/arm/virt-acpi-build.c b/hw
are 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 | 285 +++
hw/i386/acpi-build.c| 293
include/hw/acpi/aml-build.h | 22 ++
3 files
-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 e0bed9037c..711cf2069f 100644
--- a/hw/arm/virt-acpi-build.c
+++ b/hw/arm/virt-acpi-build.c
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/bios-tables
.
Signed-off-by: Jiahui Cen
Signed-off-by: Yubo Miao
---
hw/i386/pc.c | 18 +--
hw/nvram/fw_cfg.c | 23
include/hw/nvram/fw_cfg.h | 9
3 files changed, 33 insertions(+), 17 deletions(-)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index
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
in DSDT.
Signed-off-by: Yubo Miao
Signed-off-by: Jiahui Cen
---
hw/pci-host/gpex-acpi.c | 112 +++-
1 file changed, 63 insertions(+), 49 deletions(-)
diff --git a/hw/pci-host/gpex-acpi.c b/hw/pci-host/gpex-acpi.c
index dbb350a837..32a9f2796d 100644
--- a/hw/pci-host/gpex-acpi.c
// 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
f patches make arm to support PXB-PCIE.
Users can configure pxb-pcie with certain numa, Example command
is:
-device pxb-pcie,id=pci.7,bus_nr=128,numa_node=0,bus=pcie.0,addr=0x9
Jiahui Cen (2):
fw_cfg: Refactor extra pci roots addition
hw/arm/virt: Write extra pci roots into fw_cfg
Yubo Mia
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
// 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
in 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
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
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
are 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
-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
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
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
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
-by: 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
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 ++
2
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
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
block-b
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
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
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
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:
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
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/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 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/enable/co
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
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
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-tables
-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 +112,26
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 100644
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(-)
diff
nel.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 DSDT.pxb
,, , 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
})
}
+
+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 changed
1 - 100 of 114 matches
Mail list logo