On 12/02/2011 01:23 PM, Deepak Shetty wrote:
On 12/02/2011 04:32 AM, Sharad Mishra wrote:
[...]
> <filesystem type='mount'>
> <driver type='handle'/>
> <source dir='/tmp/virt1'/>
> <target dir='test-lib'/>
> <alias name='fs0'/>
> <address type='pci' domain='0x0000' bus='0x00'
slot='0x03'
> function='0x0'/>
> </filesystem>
> What in the above libvirt XML makes it specific to 9pfs? I am
> looking for
> special 'tags' or 'properties'.
>
> -Sharad Mishra
type='mount' makes it specific to 9pfs. So its the type attribute of
the filesystem tag.
I confirmed the same by looking into libvirt code also.
[...]
>> The<filesystem> node comes directly under
the<domain> node.
>>
>> My approach for introducing 9pfs support in libvirt-cim is ...
>>
>> 1) Add a new CIM res type, eg; CIM_RES_TYPE_9PFS, is this ok ?
>>
>> 2) Add appropriate handlers for the above new resource type
>>
>> 3) Add new members in struct domain for representing this new device
> type.
>> 4) Add appropriate xml parsing generation tags for the new resource
>> type.
>>
>> 5) I probably need to add something like
>> KVM_9PFSResourceAllocationSettingData -- I am not very clear on this
>> yet.
>> Need some help on how to do this ?
>>
I found some more enlightment today looking at the code, so here are my
newer thoughts...
1) It looks like the <filesystem> libvirt xml node ( that comes directly
under <devices>) is supported in a psuedo fashion, under
CIM_RES_TYPE_DISK, is this correct ?
It does res_type = ...DISK and dev_type = ..DISK_FS.
2) The cim code is structured in such a way that for each device type
that comes under <devices> there is a virt-device and
<device_type>_device (eg: disk_device, net_device) structures and they
are described by the respective RASDs. In following this tradition the
there should have been virt_device and fs_device structures to
correspond to the <filesystem> device type, eventually getting embedded
under 'struct domain' but I don't see it, why is this so ? Why is
<filesystem> treated differently in cim code ?
3) Assuming "yes" to #1 above, i need to extend the EmulatedType in
KVM_DiskResourceAllocationSettingData to support "filesystem" as a
value, set the disk_type = DISK_FS in disk_rasd_to_vdev and then it
should probably work, as the disk_xml and disk_fs_xml code is already
present to create the <filesystem> xml node.
4) I probably will re-use some of the members of
KVM_DiskResourceAllocationSettingData from a 9pfs perspective, source
and target will remain same as before, DriverCache, Address, may not be
relevant for 9pfs. I might need to add few more stuff in DiskRASD as
needed to support more sub-elements and attributes in for the
<filesystem> in 9pfs case.
Let me know if the above approach/understanding is correct. Appreciate
your inputs.
thanx,
deepak