Thanks for helping out.

What I need is to set logical block size to something larger than 512, e.g.
4096. It doesn't work.

I guess the bug is here:

http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/io/vioblk/vioblk.c#919

sc_capacity is in 512B, needs to be converted to logical blocks. I will
test the patch and report back.

Thanks,

--Youzhong

On Mon, Jan 30, 2017 at 4:21 PM, Nahum Shalman <[email protected]> wrote:

> Only setting:
> "qemu_extra_opts": "-global virtio-blk-pci.physical_block_size=4096"
> appeared to work. diskinfo reported the correct size, creating a pool on
> it succeeded, and it had an ashift of 12.
>
> Not sure where that will leave you.
> -Nahum
>
>
> On Mon, Jan 30, 2017 at 2:30 PM, Nahum Shalman <[email protected]>
> wrote:
>
>> I wonder if I've just stumbled on a bug. I provisioned a VM with a zvol
>> of 8GB, and with those qemu_extra_opts, but "diskinfo" thinks the disk is
>> 64GB in size...
>> I don't know the full mdb-fu you used to find that address and dump out
>> those properties.
>>
>> Something seems a little fishy here.
>> -Nahum
>>
>> On Mon, Jan 30, 2017 at 2:07 PM, Nahum Shalman <[email protected]>
>> wrote:
>>
>>> That's only modifying the volblocksize of the underlying zvol. Getting
>>> QEMU to advertise a different blocksize might be trickier which is probably
>>> what's necessary.
>>> I found reference to "-global ide-drive.physical_block_size=4096" in
>>> http://wiki.qemu.org/download/qemu-doc.html#sec_005finvocation
>>>
>>> After a bunch of digging I ran the following two commands and got the
>>> output as shown:
>>>
>>> # /smartdc/bin/qemu-system-x86_64 -device ? 2>&1 | grep -i virtio
>>> name "virtio-balloon-pci", bus PCI
>>> name "virtio-serial-pci", bus PCI, alias "virtio-serial"
>>> name "virtio-net-pci", bus PCI
>>> name "virtio-blk-pci", bus PCI, alias "virtio-blk"
>>> name "virtconsole", bus virtio-serial-bus
>>> name "virtserialport", bus virtio-serial-bus
>>> # /smartdc/bin/qemu-system-x86_64 -device virtio-blk-pci,? 2>&1 | grep
>>> block_size
>>> virtio-blk-pci.logical_block_size=uint16
>>> virtio-blk-pci.physical_block_size=uint16
>>>
>>> So I think you should be able to set "qemu_extra_opts" to e.g. "-global
>>> virtio-blk-pci.physical_block_size=8192 -global 
>>> virtio-blk-pci.logical_block_size=4096"
>>> to test tweaking those values.
>>>
>>> Good luck!
>>> -Nahum
>>>
>>>
>>> On Mon, Jan 30, 2017 at 12:11 PM, Youzhong Yang <[email protected]>
>>> wrote:
>>>
>>>> Thanks, it works.
>>>>
>>>> However, I am having difficulty setting the block size to anything
>>>> other than 512:
>>>>
>>>> vmadm tells the block size is 8192,
>>>>
>>>> # vmadm get b175850d-92fd-cf81-d352-90d40e5076ce |json disks
>>>> [
>>>>   {
>>>>     "path": "/dev/zvol/rdsk/zones/b175850d
>>>> -92fd-cf81-d352-90d40e5076ce-disk1",
>>>>     "boot": false,
>>>>     "model": "virtio",
>>>>     "media": "disk",
>>>>     "zfs_filesystem": "zones/b175850d-92fd-cf81-d352
>>>> -90d40e5076ce-disk1",
>>>>     "zpool": "zones",
>>>>     "size": 65536,
>>>>     "compression": "on",
>>>>     "refreservation": 65536,
>>>>     "block_size": 8192
>>>>   }
>>>> ]
>>>>
>>>> but inside the VM, it says the block size is 512:
>>>>
>>>> > ffffff03d8df9700::print -t struct vioblk_softc sc_virtio.sc_features
>>>> sc_blk_size sc_pblk_size
>>>> uint32_t sc_virtio.sc_features = 0x10000454
>>>> int sc_blk_size = 0x200
>>>> int sc_pblk_size = 0x200
>>>>
>>>> Quite confused ..
>>>>
>>>> Any thoughts?
>>>>
>>>> Thanks,
>>>>
>>>> --Youzhong
>>>>
>>>>
>>>>
>>>> On Mon, Jan 30, 2017 at 10:10 AM, Nahum Shalman <[email protected]>
>>>> wrote:
>>>>
>>>>> You can also create a SmartOS KVM VM on a SmartOS machine with a
>>>>> virtio virtual disk.
>>>>>
>>>>> -Nahum
>>>>>
>>>>> On Mon, Jan 30, 2017 at 9:38 AM, Youzhong Yang <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Hi All,
>>>>>>
>>>>>> A quick question - how can I make use of vioblk device driver?
>>>>>> Creating a SmartOS VM using Linux KVM?
>>>>>>
>>>>>> The reason I am asking this is that I want to test a change in
>>>>>> blkdev, to exercise some code path in it which can't be done using NVMe
>>>>>> devices, such as the 'dump' functionality.
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Youzhong
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
> *smartos-discuss* | Archives
> <https://www.listbox.com/member/archive/184463/=now>
> <https://www.listbox.com/member/archive/rss/184463/25077300-734ee1ca> |
> Modify
> <https://www.listbox.com/member/?&;>
> Your Subscription <http://www.listbox.com>
>



-------------------------------------------
smartos-discuss
Archives: https://www.listbox.com/member/archive/184463/=now
RSS Feed: https://www.listbox.com/member/archive/rss/184463/25769125-55cfbc00
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=25769125&id_secret=25769125-7688e9fb
Powered by Listbox: http://www.listbox.com

Reply via email to