qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] virtio-9p
@ 2015-08-07 16:21 Linda
  2015-08-10 10:10 ` Stefan Hajnoczi
  0 siblings, 1 reply; 9+ messages in thread
From: Linda @ 2015-08-07 16:21 UTC (permalink / raw)
  To: qemu-devel, Julien Grall, Wei Liu

Hello,
     I am a summer intern under the Outreachy program (returning to 
software development after a long hiatus).  I am developing a prototype 
of a xen front/back end for a 9p file transport.
     Since virtio is the most complete, and used, transport, I am using 
that as a model.
     I am encountering some problems that, to fix sanely, will require 
making changes to virtio code.  On the plus side, when I'm finished with 
this project, any transport will be able to use the 9P server, with no 
modification.
     As background, for the backend, I have been looking at the code, 
written by Anthony Liguori, and maintained by Aneesh Kumar (who I sent 
this email to, earlier).  It looks to me (please correct me if I'm 
wrong, on this or any other point, below) as if Anthony wrote not just a 
backend transport layer, but the server as well.  AFAICT, there is no 
other Linux 9p server.
     virtio-9p.c contains a lot of this server code, the rest spread 
between 13 other files which handle all file access operations, 
converting them from 9p to Linux file system calls.
     virtio-9p.c also contains some virtio-specific code (although most 
of that is in virtio-device.c).

The problems I am encountering are the following:

1.  In the virio-9p.h is a struct V9fsPDU that contains an element (in 
the middle of the struct) of type VirtQueueElement. Every 9p I/O command 
handler, as well as co-routines and support functions that go with them 
(i.e., a large part of the server), passes a parameter that is a struct 
V9fsPDU.   Almost all of these use only the variable that defines state 
information, and never touch the VirtQueueElement member.
     The easiest fix for this is to have a separate header file with a 
#define GENERIC_9P_SERVER
     Then I could modify the virtio-9p.h with:
             #ifdef GENERIC_9P_SERVER
                    a union of a void *, a char * (what I use), and a 
VirtQueueElement (guaranteeing the size is unchanged)
             #else
                     VirtQueueElement    elem;
             #endif

     It's not my favorite construct, but it would involve the least 
amount of changes to the code.   Before I modify a header file, that 
code, I'm not touching, is dependent on, I wanted to know if this is an 
OK way.  If not, is there another way (short of copying fourteen files, 
and changing the names of all the functions in them, as well as the file 
names), that you would prefer?

     2.  The other problem, is that most of the "server" functions 
described above, end by calling complete_pdu.   Complete_pdu (which is 
defined in virtio-9p.c) does many things that are generic, and also a 
few virito specific operations (pushing to the virtqueue, etc.).
     Again, I can use a similar mechanism to the above.  Or is there 
some other way you'd prefer? I'm trying to find a way that has the least 
impact on virtio/qemu maintainers.

Thank you for your time, and any help/insights you can provide.

Sincerely,

Linda Jacobson

^ permalink raw reply	[flat|nested] 9+ messages in thread
* [Qemu-devel] Virtio-9p
@ 2016-03-30 12:10 Pradeep Kiruvale
  2016-03-30 14:13 ` Greg Kurz
  0 siblings, 1 reply; 9+ messages in thread
From: Pradeep Kiruvale @ 2016-03-30 12:10 UTC (permalink / raw)
  To: qemu-discuss@nongnu.org, qemu-devel

[-- Attachment #1: Type: text/plain, Size: 263 bytes --]

Hi All,

Is virtio-9p-pci device only supports the fsdev deices? I am trying to use
-drive option for applying QoS for block device using Virtio-9p-pci device,
but failing to create/add a device other than fsdev. Can you please help me
on this?

Regards,
Pradeep

[-- Attachment #2: Type: text/html, Size: 343 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-04-04 14:40 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-07 16:21 [Qemu-devel] virtio-9p Linda
2015-08-10 10:10 ` Stefan Hajnoczi
2015-08-10 13:20   ` Linda
  -- strict thread matches above, loose matches on Subject: below --
2016-03-30 12:10 [Qemu-devel] Virtio-9p Pradeep Kiruvale
2016-03-30 14:13 ` Greg Kurz
2016-03-30 14:27   ` Pradeep Kiruvale
2016-03-31 16:12     ` Greg Kurz
     [not found]       ` <CAJ2SuLm3U354OOKhaEEH-m_HuoAbPEK4ib-H0hvR7Pn296offA@mail.gmail.com>
2016-04-01  9:35         ` Greg Kurz
2016-04-04 14:39           ` Pradeep Kiruvale

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).