oroutine_fn (*bdrv_co_zone_report)(BlockDriverState *bs,
+int64_t offset, int64_t len, int64_t *nr_zones,
+BlockZoneDescriptor *zones);
+int coroutine_fn (*bdrv_co_zone_mgmt)(BlockDriverState *bs, enum zone_op
op,
+int64_t offset, int64_t len);
+
/* removable
ile);
+zone_size = get_sysfs_long_val(fd, file, "chunk_sectors");
zone_size_mask = zone_size - 1;
if (offset & zone_size_mask) {
error_report("offset is not the start of a zone");
Round of applause.
Reviewed-by: Hannes Reinecke
Cheers,
Hannes
--
Dr. Han
uot;truncate",
@@ -2498,6 +2614,11 @@ static void __attribute((constructor))
init_qemuio_commands(void)
qemuio_add_command(&aio_write_cmd);
qemuio_add_command(&aio_flush_cmd);
qemuio_add_command(&flush_cmd);
+qemuio_add_command(&zone_report_cmd);
+qemuio_ad
ck-common.h
@@ -56,8 +56,8 @@ typedef enum zone_op {
} zone_op;
typedef enum zone_model {
-BLK_Z_HM,
-BLK_Z_HA,
+BLK_Z_HM = 0x1,
+BLK_Z_HA = 0x2,
} zone_model;
typedef enum BlkZoneCondition {
Cheers,
Hannes
--
Dr. Hannes ReineckeKernel Storage Architect
h.
_IO $IMG -c "zone_close 0x3e7000 0x8"
+echo "report after:"
+sudo $QEMU_IO $IMG -c "zone_report 0x3e7000 0 2"
+
+
+echo "reset the second zone"
+sudo $QEMU_IO $IMG -c "zone_reset 0x8 0x8"
+echo "After resetting
ocMode prealloc;
Error **errp;
} truncate;
+struct {
+int64_t *nr_zones;
Why is this a pointer?
I'd rather use a number here, seeing that it's the number
of zones in the *zones array ...
But the remainder looks good.
Cheers,
Hannes
--
Dr. Hannes Reine
}
+return ret;
+}
+
+static const cmdinfo_t zone_report_cmd = {
+.name = "zone_report",
+.altname = "zp",
+.cfunc = zone_report_f,
+.argmin = 2,
+.argmax = 2,
+ .args = "offset number",
+ .oneline = "rep
), 11 deletions(-)
Reviewed-by: Hannes Reinecke
Cheers,
Hannes
--
Dr. Hannes ReineckeKernel Storage Architect
h...@suse.de +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo
/block/block-common.h
+++ b/include/block/block-common.h
@@ -56,8 +56,8 @@ typedef enum zone_op {
} zone_op;
typedef enum zone_model {
-BLK_Z_HM,
-BLK_Z_HA,
+BLK_Z_HM = 0x1,
+BLK_Z_HA = 0x2,
} zone_model;
typedef enum BlkZoneCondition {
This hunk is unrelated, pleas
On 10/10/22 04:21, Sam Li wrote:
Signed-off-by: Sam Li
Reviewed-by: Stefan Hajnoczi
Reviewed-by: Damien Le Moal
---
include/block/block-common.h | 43
1 file changed, 43 insertions(+)
Reviewed-by: Hannes Reinecke
Cheers,
Hannes
--
Dr. Hannes
insertions(+)
Reviewed-by: Hannes Reinecke
Cheers,
Hannes
--
Dr. Hannes ReineckeKernel Storage Architect
h...@suse.de +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Ivo Totev
.
+ */
+bool supports_zoned_children;
+
/*
* Drivers not implementing bdrv_parse_filename nor bdrv_open should have
* this field set to true, except ones that are defined only by their
The remainder looks good.
Once you fixed the minor editing issues you can add:
Reviewed
se ``--blockdev zoned_host_device,
+ node-name=drive0,filename=/dev/nullb0`` to pass through ``/dev/nullb0``
+ as ``drive0``.
+
Windows
^^^
Cheers,
Hannes
--
Dr. Hannes ReineckeKernel Storage Architect
h...@suse.de +49 911 74053 688
SUSE Sof
On 10/10/22 19:01, Daniel Wagner wrote:
On Tue, May 11, 2021 at 06:12:47PM +0200, Hannes Reinecke wrote:
On 5/11/21 6:03 PM, Klaus Jensen wrote:
On May 11 16:54, Hannes Reinecke wrote:
On 5/11/21 3:37 PM, Klaus Jensen wrote:
On May 11 15:12, Hannes Reinecke wrote:
On 5/11/21 2:22 PM, Klaus
On 11/10/2016 05:14 PM, Michael S. Tsirkin wrote:
> From: Cao jin
>
> Resolve the TODO, msix=auto means msix on; if user specify msix=on,
> then device creation fail on msix_init failure.
> Also undo the overwrites of user configuration of msix.
>
> CC: Michael S. Tsirkin
On 11/10/2016 05:14 PM, Michael S. Tsirkin wrote:
> From: Cao jin
>
> Also move certain hunk above, to place msix init related code together.
>
> CC: Hannes Reinecke
> CC: Paolo Bonzini
> CC: Markus Armbruster
> CC: Marcel Apfelbaum
> CC: Michael S. Tsirki
On 11/10/2016 05:14 PM, Michael S. Tsirkin wrote:
> From: Cao jin
>
> Commit afea4e14 seems forgetting to undo the overwrites, which is
> unsuitable.
>
> CC: Hannes Reinecke
> CC: Paolo Bonzini
> CC: Markus Armbruster
> CC: Marcel Apfelbaum
> CC: Michael S. Tsi
who won't fail because of
> msix_init's failure, suppress the error report by passing NULL error object.
>
> Bonus: add comment for msix_init.
>
> CC: Jiri Pirko
> CC: Gerd Hoffmann
> CC: Dmitry Fleytman
> CC: Jason Wang
> CC: Michael S. Tsirkin
> CC:
t val, unsigned size)
> +{
> +return;
> +}
> +
> static const MemoryRegionOps megasas_queue_ops = {
> .read = megasas_queue_read,
> +.write = megasas_queue_write,
> .endianness = DEVICE_LITTLE_ENDIAN,
> .impl = {
> .min_access_size
On 09/22/2015 10:16 PM, Eduardo Habkost wrote:
> Guest visible data shouldn't change with a simple QEMU upgrade, so use
> qemu_hw_version() to ensure it won't change (as long as the machine
> class being used has hw_version set).
>
> Cc: Hannes Reinecke
> Cc: Pao
; -trace_megasas_abort_invalid_context(cmd->index, abort_cmd->index,
> -abort_cmd->context);
> +trace_megasas_abort_invalid_context(cmd->index, abort_cmd->context,
> + abort_cmd-&
-
> 3 files changed, 63 insertions(+), 61 deletions(-)
>
Reviewed-by: Hannes Reinecke
Cheers,
Hannes
--
Dr. Hannes ReineckeTeamlead Storage & Networking
h...@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürn
.
Please use a different SCSI target number, not a non-zero LUN number.
Cheers,
Hannes
--
Dr. Hannes ReineckeTeamlead Storage & Networking
h...@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Mary Higgins, Sri Rasiah
HRB 21284 (AG Nürnberg)
On 3/28/19 1:47 AM, Dongli Zhang wrote:
On 3/27/19 7:31 PM, Hannes Reinecke wrote:
On 3/26/19 5:47 PM, Dongli Zhang wrote:
I am reporting an error that the scsi lun cannot initialize successfully when I
am emulating megasas scsi controller with qemu.
I am not sure if this is issue in qemu
#x27;s being hardcoded in the drivers
themselves (even though the interface provides mechanisms to query it).
So we can remove the duplicate lines.
But then I prefer to stick with the define, and avoid having to check
the magic '128' value directly; rather use the define throughout the code.
Cheers,
Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
h...@suse.de +49 911 74053 688
SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), GF: Felix Imendörffer
++---
3 files changed, 20 insertions(+), 21 deletions(-)
Reviewed-by: Hannes Reinecke
Cheers,
Hannes
--
Dr. Hannes ReineckeKernel Storage Architect
h...@suse.de +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409
otpluggable = false;
device_class_set_props(dc, nvme_subsystem_props);
}
Reviewed-by: Hannes Reinecke
Cheers,
Hannes
--
Dr. Hannes ReineckeKernel Storage Architect
h...@suse.de +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB
(+)
Reviewed-by: Hannes Reinecke
Cheers,
Hannes
--
Dr. Hannes ReineckeKernel Storage Architect
h...@suse.de +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer
ish between 'shared' and
'non-shared' subsystems instead of the ->subsys pointer?
That way all namespaces can be children of the subsystem, we won't need
any reparenting, and the whole thing will be more in-line with qdev, no?
Cheers,
Hannes
--
Dr. Hannes Reinecke
On 7/7/21 11:53 AM, Klaus Jensen wrote:
On Jul 7 09:49, Hannes Reinecke wrote:
On 7/6/21 11:33 AM, Klaus Jensen wrote:
From: Klaus Jensen
Prior to this patch the nvme-ns devices are always children of the
NvmeBus owned by the NvmeCtrl. This causes the namespaces to be
unrealized when the
NvmeSubsystem *subsys = NVME_SUBSYS(dev);
+qbus_create_inplace(&subsys->bus, sizeof(NvmeBus), TYPE_NVME_BUS, dev,
+ dev->id);
+
nvme_subsys_setup(subsys);
}
Cheers,
Hannes
--
Dr. Hannes ReineckeKernel Storage Architect
On 7/7/21 6:14 PM, Stefan Hajnoczi wrote:
On Wed, Jul 07, 2021 at 12:43:56PM +0200, Hannes Reinecke wrote:
On 7/7/21 11:53 AM, Klaus Jensen wrote:
On Jul 7 09:49, Hannes Reinecke wrote:
On 7/6/21 11:33 AM, Klaus Jensen wrote:
From: Klaus Jensen
Prior to this patch the nvme-ns devices are
h 4?
Without it this whole exercise is a bit pointless, seeing that it
doesn't fix anything.
Shall we go with that patch as an interim solution?
Will you replace it with your 'object' patch?
What is the plan?
Cheers,
Hannes
--
Dr. Hannes ReineckeKernel Storag
On 7/9/21 8:55 AM, Klaus Jensen wrote:
On Jul 9 08:16, Hannes Reinecke wrote:
On 7/9/21 8:05 AM, Klaus Jensen wrote:
On Jul 7 17:49, Klaus Jensen wrote:
From: Klaus Jensen
Back in May, Hannes posted a fix[1] to re-enable NVMe PCI hotplug. We
discussed a bit back and fourth and I mentioned
that namespaces are kept alive and not unrealized.
Reviewed-by: Hannes Reinecke
Signed-off-by: Klaus Jensen
---
hw/nvme/nvme.h | 15 ---
hw/nvme/ctrl.c | 14 ++
hw/nvme/ns.c | 18 ++
hw/nvme/subsys.c | 3 +++
4 files changed, 35 insertions
bsystem to the controller.
Fixes: 5ffbaeed16 ("hw/nvme: fix controller hot unplugging")
Cc: Klaus Jensen
Signed-off-by: Hannes Reinecke
---
hw/nvme/subsys.c | 8 +++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/hw/nvme/subsys.c b/hw/nvme/subsys.c
index 93c35950d
bsystem to the controller.
Fixes: 5ffbaeed16 ("hw/nvme: fix controller hot unplugging")
Cc: Klaus Jensen
Signed-off-by: Hannes Reinecke
---
hw/nvme/subsys.c | 8 +++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/hw/nvme/subsys.c b/hw/nvme/subsys.c
index 93c35950d
On 9/9/21 9:59 AM, Klaus Jensen wrote:
> On Sep 9 09:02, Hannes Reinecke wrote:
>> On 7/26/21 9:18 PM, Klaus Jensen wrote:
>>> From: Klaus Jensen
>>>
>>> Prior to this patch the nvme-ns devices are always children of the
>>> NvmeBus owned by t
If a legacy 'drive' argument is passed to the controller we cannot
assume that '1' will be a free NSID, as the subsys might already
have attached a namespace to this NSID. So select the first free
one.
Signed-off-by: Hannes Reinecke
---
hw/nvme/ctrl.c | 9 -
1 file c
On 9/9/21 12:47 PM, Klaus Jensen wrote:
> On Sep 9 11:43, Hannes Reinecke wrote:
>> With commit 5ffbaeed16 ("hw/nvme: fix controller hot unplugging")
>> namespaces get moved from the controller to the subsystem if one
>> is specified.
>> That keeps the na
On 9/9/21 12:52 PM, Klaus Jensen wrote:
> On Sep 9 11:51, Hannes Reinecke wrote:
>> If a legacy 'drive' argument is passed to the controller we cannot
>> assume that '1' will be a free NSID, as the subsys might already
>> have attached a namespace to t
On 9/23/21 10:09 PM, Klaus Jensen wrote:
On Sep 9 13:37, Hannes Reinecke wrote:
On 9/9/21 12:47 PM, Klaus Jensen wrote:
On Sep 9 11:43, Hannes Reinecke wrote:
With commit 5ffbaeed16 ("hw/nvme: fix controller hot unplugging")
namespaces get moved from the controller to the subsys
call.
Fixes: e570768566 ("hw/block/nvme: support for shared namespace in subsystem")
Signed-off-by: Hannes Reinecke
---
capstone | 2 +-
hw/block/nvme-ns.c | 31 ++
hw/block/nvme-subsys.c | 12 +
hw/block
On 5/11/21 2:22 PM, Klaus Jensen wrote:
> On May 11 09:35, Hannes Reinecke wrote:
>> Ever since commit e570768566 ("hw/block/nvme: support for shared
>> namespace in subsystem") NVMe PCI hotplug is broken, as the PCI
>> hotplug infrastructure will only work for the
On 5/11/21 3:37 PM, Klaus Jensen wrote:
> On May 11 15:12, Hannes Reinecke wrote:
>> On 5/11/21 2:22 PM, Klaus Jensen wrote:
[ .. ]
>>> The hotplug fix looks good - I'll post a series that tries to integrate
>>> both.
>>>
>> Ta.
>>
>&g
On 5/11/21 6:03 PM, Klaus Jensen wrote:
On May 11 16:54, Hannes Reinecke wrote:
On 5/11/21 3:37 PM, Klaus Jensen wrote:
On May 11 15:12, Hannes Reinecke wrote:
On 5/11/21 2:22 PM, Klaus Jensen wrote:
[ .. ]
The hotplug fix looks good - I'll post a series that tries to
integrate
both.
if (s->fw_cmds > MEGASAS_MAX_FRAMES) {
s->fw_cmds = MEGASAS_MAX_FRAMES;
}
Reviewed-by: Hannes Reinecke
Cheers,
Hannes
--
Dr. Hannes ReineckeKernel Storage Architect
h...@suse.de +49 911 74053 688
SUSE Software Solutio
On 1/23/24 11:59, Damien Hedde wrote:
Hi all,
We are currently looking into hotplugging nvme devices and it is currently not
possible:
When nvme was introduced 2 years ago, the feature was disabled.
commit cc6fb6bc506e6c47ed604fcb7b7413dff0b7d845
Author: Klaus Jensen
Date: Tue Jul 6 10:48:40
On 1/24/24 07:52, Philippe Mathieu-Daudé wrote:
Hi Hannes,
[+Markus as QOM/QDev rubber duck]
On 23/1/24 13:40, Hannes Reinecke wrote:
On 1/23/24 11:59, Damien Hedde wrote:
Hi all,
We are currently looking into hotplugging nvme devices and it is
currently not possible:
When nvme was
On 1/29/24 14:13, Damien Hedde wrote:
On 1/24/24 08:47, Hannes Reinecke wrote:
On 1/24/24 07:52, Philippe Mathieu-Daudé wrote:
Hi Hannes,
[+Markus as QOM/QDev rubber duck]
On 23/1/24 13:40, Hannes Reinecke wrote:
On 1/23/24 11:59, Damien Hedde wrote:
Hi all,
We are currently looking
50 matches
Mail list logo