All of lore.kernel.org
 help / color / mirror / Atom feed
* 9p file system for xen
@ 2015-11-13 17:23 Linda
  2015-11-16 15:16 ` Wei Liu
  0 siblings, 1 reply; 22+ messages in thread
From: Linda @ 2015-11-13 17:23 UTC (permalink / raw)
  To: xen-devel, Julien Grall, Wei Liu

Hello,
      I worked this summer as an intern under Julien Grall and Wei Liu.  
My project was to develop a prototype/proof of concept xen front/back 
end for the 9p file system.  I mostly hacked the virtio 9p system.
     This project was not complete, at the end of the summer.  Julien 
said that you all wanted to include this in the next release of xen in 
January, and offered to take it over.  I told Julien I wanted to 
continue working on it, which I have been doing, very much in the 
background.
     I came upon a bug in my code recently that made me aware that I am 
not clear what the expectation for what I deliver should be: i.e., 
whether it's still a prototype, or whether this should be production 
software.
     Right now, I do not modify the toolstack (I never learned how), but 
rather start and pause my guest, and then modify xenstore, manually.   I 
can fix my bug in the same manner, but this will limit the usefulness of 
what I deliver.  To do more will hit up against the limitations of my 
time and knowledge.
     So please let me know what you're expecting, especially wrt the 
user interface, and when I would need to complete everything for this 
release.

Thank you.

Linda Jacobson

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

* Re: 9p file system for xen
  2015-11-13 17:23 9p file system for xen Linda
@ 2015-11-16 15:16 ` Wei Liu
  2015-11-16 16:36   ` Linda
  0 siblings, 1 reply; 22+ messages in thread
From: Wei Liu @ 2015-11-16 15:16 UTC (permalink / raw)
  To: Linda; +Cc: Julien Grall, Wei Liu, xen-devel

Hi Linda

On Fri, Nov 13, 2015 at 10:23:22AM -0700, Linda wrote:
> Hello,
>      I worked this summer as an intern under Julien Grall and Wei Liu.  My
> project was to develop a prototype/proof of concept xen front/back end for
> the 9p file system.  I mostly hacked the virtio 9p system.
>     This project was not complete, at the end of the summer.  Julien said
> that you all wanted to include this in the next release of xen in January,
> and offered to take it over.  I told Julien I wanted to continue working on
> it, which I have been doing, very much in the background.
>     I came upon a bug in my code recently that made me aware that I am not
> clear what the expectation for what I deliver should be: i.e., whether it's
> still a prototype, or whether this should be production software.
>     Right now, I do not modify the toolstack (I never learned how), but
> rather start and pause my guest, and then modify xenstore, manually.   I can
> fix my bug in the same manner, but this will limit the usefulness of what I
> deliver.  To do more will hit up against the limitations of my time and
> knowledge.
>     So please let me know what you're expecting, especially wrt the user
> interface, and when I would need to complete everything for this release.
> 

If I interpret this correctly, you have a prototype that's working? Do
you have your code somewhere?

I think we would still like to include it in next release if possible --
that would require a properly implemented solution, not just a
prototype.  Let's assess the current situation and then decide what to
do next.

Wei.

> Thank you.
> 
> Linda Jacobson
> 
> 
> 
> 

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

* Re: 9p file system for xen
  2015-11-16 15:16 ` Wei Liu
@ 2015-11-16 16:36   ` Linda
  2015-11-16 16:51     ` Wei Liu
  0 siblings, 1 reply; 22+ messages in thread
From: Linda @ 2015-11-16 16:36 UTC (permalink / raw)
  To: Wei Liu; +Cc: Julien Grall, xen-devel

Hi Wei,

On 11/16/2015 8:16 AM, Wei Liu wrote:
> Hi Linda
>
> On Fri, Nov 13, 2015 at 10:23:22AM -0700, Linda wrote:
>> Hello,
>>       I worked this summer as an intern under Julien Grall and Wei Liu.  My
>> project was to develop a prototype/proof of concept xen front/back end for
>> the 9p file system.  I mostly hacked the virtio 9p system.
>>      This project was not complete, at the end of the summer.  Julien said
>> that you all wanted to include this in the next release of xen in January,
>> and offered to take it over.  I told Julien I wanted to continue working on
>> it, which I have been doing, very much in the background.
>>      I came upon a bug in my code recently that made me aware that I am not
>> clear what the expectation for what I deliver should be: i.e., whether it's
>> still a prototype, or whether this should be production software.
>>      Right now, I do not modify the toolstack (I never learned how), but
>> rather start and pause my guest, and then modify xenstore, manually.   I can
>> fix my bug in the same manner, but this will limit the usefulness of what I
>> deliver.  To do more will hit up against the limitations of my time and
>> knowledge.
>>      So please let me know what you're expecting, especially wrt the user
>> interface, and when I would need to complete everything for this release.
>>
> If I interpret this correctly, you have a prototype that's working? Do
> you have your code somewhere?
No.  I hit a bug that I would fix differently, depending on my goal.
> I think we would still like to include it in next release if possible --
> that would require a properly implemented solution, not just a
> prototype.  Let's assess the current situation and then decide what to
The situation is, given my current knowledge and what my availability 
has been (it may improve), I can either:
     a.  Get a decent prototype working by the end of the year.  This 
would have certain values pre-written in xenstore, that I'm currently 
doing manually.  There are potentially some issues with mounting that I 
suspect need to be different for xen than they are for virtio - so 
either way, I need a clarification of how xen people want this to work.
     b.  Make sure what I've written is working, and pass it on to 
someone else to update the toolstack, and resolve the issues, described 
above.  In this scenario, I would need to know how much time that 
someone would need and just devote a week to getting this to them.

Either way, my next step is to sync up my qemu with the current qemu, 
and merge everything, and then my github will be correct, at which point 
you'll be able to access my most recent code.

Linda
> do next.
>
> Wei.
>
>> Thank you.
>>
>> Linda Jacobson
>>
>>
>>
>>

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

* Re: 9p file system for xen
  2015-11-16 16:36   ` Linda
@ 2015-11-16 16:51     ` Wei Liu
  2015-11-16 17:22       ` Linda
  0 siblings, 1 reply; 22+ messages in thread
From: Wei Liu @ 2015-11-16 16:51 UTC (permalink / raw)
  To: Linda; +Cc: Julien Grall, Wei Liu, xen-devel

On Mon, Nov 16, 2015 at 09:36:24AM -0700, Linda wrote:
> Hi Wei,
> 
> On 11/16/2015 8:16 AM, Wei Liu wrote:
> >Hi Linda
> >
> >On Fri, Nov 13, 2015 at 10:23:22AM -0700, Linda wrote:
> >>Hello,
> >>      I worked this summer as an intern under Julien Grall and Wei Liu.  My
> >>project was to develop a prototype/proof of concept xen front/back end for
> >>the 9p file system.  I mostly hacked the virtio 9p system.
> >>     This project was not complete, at the end of the summer.  Julien said
> >>that you all wanted to include this in the next release of xen in January,
> >>and offered to take it over.  I told Julien I wanted to continue working on
> >>it, which I have been doing, very much in the background.
> >>     I came upon a bug in my code recently that made me aware that I am not
> >>clear what the expectation for what I deliver should be: i.e., whether it's
> >>still a prototype, or whether this should be production software.
> >>     Right now, I do not modify the toolstack (I never learned how), but
> >>rather start and pause my guest, and then modify xenstore, manually.   I can
> >>fix my bug in the same manner, but this will limit the usefulness of what I
> >>deliver.  To do more will hit up against the limitations of my time and
> >>knowledge.
> >>     So please let me know what you're expecting, especially wrt the user
> >>interface, and when I would need to complete everything for this release.
> >>
> >If I interpret this correctly, you have a prototype that's working? Do
> >you have your code somewhere?
> No.  I hit a bug that I would fix differently, depending on my goal.
> >I think we would still like to include it in next release if possible --
> >that would require a properly implemented solution, not just a
> >prototype.  Let's assess the current situation and then decide what to
> The situation is, given my current knowledge and what my availability has
> been (it may improve), I can either:
>     a.  Get a decent prototype working by the end of the year.  This would
> have certain values pre-written in xenstore, that I'm currently doing
> manually.  There are potentially some issues with mounting that I suspect
> need to be different for xen than they are for virtio - so either way, I
> need a clarification of how xen people want this to work.
>     b.  Make sure what I've written is working, and pass it on to someone
> else to update the toolstack, and resolve the issues, described above.  In
> this scenario, I would need to know how much time that someone would need
> and just devote a week to getting this to them.
> 

Your description is too vague. I don't have clear idea what kind of bug
you encountered and what suggestion I can give.

The code freeze for next release is going to be end of March next year.
As software engineer often overestimates the progress he or she can
make, I would say we shall aim for getting something working as soon as
possible. Get the design straight and something clean by the end of this
year would be good.

> Either way, my next step is to sync up my qemu with the current qemu, and
> merge everything, and then my github will be correct, at which point you'll
> be able to access my most recent code.
> 

That would be a good first step. You don't actually need to fix the bug
for that if you don't know how to proceed yet.

Wei.

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

* Re: 9p file system for xen
  2015-11-16 16:51     ` Wei Liu
@ 2015-11-16 17:22       ` Linda
  2015-11-16 17:35         ` Wei Liu
  0 siblings, 1 reply; 22+ messages in thread
From: Linda @ 2015-11-16 17:22 UTC (permalink / raw)
  To: Wei Liu; +Cc: Julien Grall, xen-devel



On 11/16/2015 9:51 AM, Wei Liu wrote:
> On Mon, Nov 16, 2015 at 09:36:24AM -0700, Linda wrote:
>> Hi Wei,
>>
>> On 11/16/2015 8:16 AM, Wei Liu wrote:
>>> Hi Linda
>>>
>>> On Fri, Nov 13, 2015 at 10:23:22AM -0700, Linda wrote:
>>>> Hello,
>>>>       I worked this summer as an intern under Julien Grall and Wei Liu.  My
>>>> project was to develop a prototype/proof of concept xen front/back end for
>>>> the 9p file system.  I mostly hacked the virtio 9p system.
>>>>      This project was not complete, at the end of the summer.  Julien said
>>>> that you all wanted to include this in the next release of xen in January,
>>>> and offered to take it over.  I told Julien I wanted to continue working on
>>>> it, which I have been doing, very much in the background.
>>>>      I came upon a bug in my code recently that made me aware that I am not
>>>> clear what the expectation for what I deliver should be: i.e., whether it's
>>>> still a prototype, or whether this should be production software.
>>>>      Right now, I do not modify the toolstack (I never learned how), but
>>>> rather start and pause my guest, and then modify xenstore, manually.   I can
>>>> fix my bug in the same manner, but this will limit the usefulness of what I
>>>> deliver.  To do more will hit up against the limitations of my time and
>>>> knowledge.
>>>>      So please let me know what you're expecting, especially wrt the user
>>>> interface, and when I would need to complete everything for this release.
>>>>
>>> If I interpret this correctly, you have a prototype that's working? Do
>>> you have your code somewhere?
>> No.  I hit a bug that I would fix differently, depending on my goal.
>>> I think we would still like to include it in next release if possible --
>>> that would require a properly implemented solution, not just a
>>> prototype.  Let's assess the current situation and then decide what to
>> The situation is, given my current knowledge and what my availability has
>> been (it may improve), I can either:
>>      a.  Get a decent prototype working by the end of the year.  This would
>> have certain values pre-written in xenstore, that I'm currently doing
>> manually.  There are potentially some issues with mounting that I suspect
>> need to be different for xen than they are for virtio - so either way, I
>> need a clarification of how xen people want this to work.
>>      b.  Make sure what I've written is working, and pass it on to someone
>> else to update the toolstack, and resolve the issues, described above.  In
>> this scenario, I would need to know how much time that someone would need
>> and just devote a week to getting this to them.
>>
> Your description is too vague. I don't have clear idea what kind of bug
> you encountered and what suggestion I can give.
The bug is a timing issue:  During virtio's probe step, on the front 
end, it initialized the mount path.  Since at that time, the front end 
doesn't have access to the back end's entries in xenstore (AFIACT), I 
either need to put it in xenstore prior to starting, or move the access 
to this information to later in the initialization.

Note, I used the past tense on what virtio did, as of last summer: when 
I looked at it last week, it appears to have changed since I first used 
it as a template.    I need to investigate this further.

Finally, I've made no provision for how to mount more than one file 
system for the same guest.  This is a feature that virtio provides for 
in the front-end code (as do I), but I am unclear about how this works 
in the back-end or at the user level.  This is what I suspect will be 
different in xen, and I'd like some input on what it should look like.
> The code freeze for next release is going to be end of March next year.
> As software engineer often overestimates the progress he or she can
> make, I would say we shall aim for getting something working as soon as
> possible. Get the design straight and something clean by the end of this
> year would be good.
Sounds good to me.  I'm happy to keep working on this.  I just didn't 
want to find myself in a position where I needed to pass this on to 
someone else, but I didn't give that person enough time to finish what 
I'd done.
>
>> Either way, my next step is to sync up my qemu with the current qemu, and
>> merge everything, and then my github will be correct, at which point you'll
>> be able to access my most recent code.
>>
> That would be a good first step. You don't actually need to fix the bug
> for that if you don't know how to proceed yet.
Good.  I'm glad we're on the same page, on this.

Linda
>
> Wei.
>

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

* Re: 9p file system for xen
  2015-11-16 17:22       ` Linda
@ 2015-11-16 17:35         ` Wei Liu
  2015-11-17  3:02           ` Linda
  0 siblings, 1 reply; 22+ messages in thread
From: Wei Liu @ 2015-11-16 17:35 UTC (permalink / raw)
  To: Linda; +Cc: Julien Grall, Wei Liu, xen-devel

On Mon, Nov 16, 2015 at 10:22:41AM -0700, Linda wrote:
> 
> 
> On 11/16/2015 9:51 AM, Wei Liu wrote:
> >On Mon, Nov 16, 2015 at 09:36:24AM -0700, Linda wrote:
> >>Hi Wei,
> >>
> >>On 11/16/2015 8:16 AM, Wei Liu wrote:
> >>>Hi Linda
> >>>
> >>>On Fri, Nov 13, 2015 at 10:23:22AM -0700, Linda wrote:
> >>>>Hello,
> >>>>      I worked this summer as an intern under Julien Grall and Wei Liu.  My
> >>>>project was to develop a prototype/proof of concept xen front/back end for
> >>>>the 9p file system.  I mostly hacked the virtio 9p system.
> >>>>     This project was not complete, at the end of the summer.  Julien said
> >>>>that you all wanted to include this in the next release of xen in January,
> >>>>and offered to take it over.  I told Julien I wanted to continue working on
> >>>>it, which I have been doing, very much in the background.
> >>>>     I came upon a bug in my code recently that made me aware that I am not
> >>>>clear what the expectation for what I deliver should be: i.e., whether it's
> >>>>still a prototype, or whether this should be production software.
> >>>>     Right now, I do not modify the toolstack (I never learned how), but
> >>>>rather start and pause my guest, and then modify xenstore, manually.   I can
> >>>>fix my bug in the same manner, but this will limit the usefulness of what I
> >>>>deliver.  To do more will hit up against the limitations of my time and
> >>>>knowledge.
> >>>>     So please let me know what you're expecting, especially wrt the user
> >>>>interface, and when I would need to complete everything for this release.
> >>>>
> >>>If I interpret this correctly, you have a prototype that's working? Do
> >>>you have your code somewhere?
> >>No.  I hit a bug that I would fix differently, depending on my goal.
> >>>I think we would still like to include it in next release if possible --
> >>>that would require a properly implemented solution, not just a
> >>>prototype.  Let's assess the current situation and then decide what to
> >>The situation is, given my current knowledge and what my availability has
> >>been (it may improve), I can either:
> >>     a.  Get a decent prototype working by the end of the year.  This would
> >>have certain values pre-written in xenstore, that I'm currently doing
> >>manually.  There are potentially some issues with mounting that I suspect
> >>need to be different for xen than they are for virtio - so either way, I
> >>need a clarification of how xen people want this to work.
> >>     b.  Make sure what I've written is working, and pass it on to someone
> >>else to update the toolstack, and resolve the issues, described above.  In
> >>this scenario, I would need to know how much time that someone would need
> >>and just devote a week to getting this to them.
> >>
> >Your description is too vague. I don't have clear idea what kind of bug
> >you encountered and what suggestion I can give.
> The bug is a timing issue:  During virtio's probe step, on the front end, it
> initialized the mount path.  Since at that time, the front end doesn't have
> access to the back end's entries in xenstore (AFIACT), I either need to put
> it in xenstore prior to starting, or move the access to this information to
> later in the initialization.
> 
> Note, I used the past tense on what virtio did, as of last summer: when I
> looked at it last week, it appears to have changed since I first used it as
> a template.    I need to investigate this further.
> 

OK.

> Finally, I've made no provision for how to mount more than one file system
> for the same guest.  This is a feature that virtio provides for in the
> front-end code (as do I), but I am unclear about how this works in the
> back-end or at the user level.  This is what I suspect will be different in
> xen, and I'd like some input on what it should look like.

I think this comes down to how your design the xenstore protocol to
represent different mount points.

> >The code freeze for next release is going to be end of March next year.
> >As software engineer often overestimates the progress he or she can
> >make, I would say we shall aim for getting something working as soon as
> >possible. Get the design straight and something clean by the end of this
> >year would be good.
> Sounds good to me.  I'm happy to keep working on this.  I just didn't want
> to find myself in a position where I needed to pass this on to someone else,
> but I didn't give that person enough time to finish what I'd done.

Depending on the situation, I can take over the code. You've done enough
for this project and we don't really want you to work on it for free --
we don't have provision for more funding at the moment.

If we end up taking over the project, we will still attribute the
initial implementation to you.

Wei.

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

* Re: 9p file system for xen
  2015-11-16 17:35         ` Wei Liu
@ 2015-11-17  3:02           ` Linda
  2015-11-17 18:35             ` Neil Sikka
  2015-11-19 15:05             ` Wei Liu
  0 siblings, 2 replies; 22+ messages in thread
From: Linda @ 2015-11-17  3:02 UTC (permalink / raw)
  To: Wei Liu; +Cc: Julien Grall, xen-devel

Hi Wei,

On 11/16/2015 10:35 AM, Wei Liu wrote:
> On Mon, Nov 16, 2015 at 10:22:41AM -0700, Linda wrote:
...
>>
>> The bug is a timing issue:  During virtio's probe step, on the front end, it
>> initialized the mount path.  Since at that time, the front end doesn't have
>> access to the back end's entries in xenstore (AFIACT), I either need to put
>> it in xenstore prior to starting, or move the access to this information to
>> later in the initialization.
>>
>> Note, I used the past tense on what virtio did, as of last summer: when I
>> looked at it last week, it appears to have changed since I first used it as
>> a template.    I need to investigate this further.
>>
> OK.
>
>> Finally, I've made no provision for how to mount more than one file system
>> for the same guest.  This is a feature that virtio provides for in the
>> front-end code (as do I), but I am unclear about how this works in the
>> back-end or at the user level.  This is what I suspect will be different in
>> xen, and I'd like some input on what it should look like.
> I think this comes down to how your design the xenstore protocol to
> represent different mount points.
And just reading this gave me the answer I need.
>
>>> The code freeze for next release is going to be end of March next year.
>>> As software engineer often overestimates the progress he or she can
>>> make, I would say we shall aim for getting something working as soon as
>>> possible. Get the design straight and something clean by the end of this
>>> year would be good.
>> Sounds good to me.  I'm happy to keep working on this.  I just didn't want
>> to find myself in a position where I needed to pass this on to someone else,
>> but I didn't give that person enough time to finish what I'd done.
> Depending on the situation, I can take over the code. You've done enough
> for this project and we don't really want you to work on it for free --
> we don't have provision for more funding at the moment.
Understood.
> If we end up taking over the project, we will still attribute the
> initial implementation to you.
     Thanks.  Julien said essentially the same thing.  Right now, I'm 
working on average, less than 10 hours/week, so it's enough to keep my 
mind engaged, but it doesn't interfere with anything else.
     I will be working for pay, in some capacity (TBD), after the first 
of the year.   Right now, I'm working to line things up.
     Unless something changes drastically, I'll continue to work on this 
until the end of the year.  I'll start by cleaning things up, and keep 
it that way, so no matter what happens, you, or Julien, can take it over.

Linda
>
> Wei.
>

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

* Re: 9p file system for xen
  2015-11-17  3:02           ` Linda
@ 2015-11-17 18:35             ` Neil Sikka
  2015-11-17 19:50               ` Linda
  2015-11-19 15:05             ` Wei Liu
  1 sibling, 1 reply; 22+ messages in thread
From: Neil Sikka @ 2015-11-17 18:35 UTC (permalink / raw)
  To: Linda; +Cc: Julien Grall, Wei Liu, xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 3479 bytes --]

How does Linda's work relate to Wei's patches available here (I didnt see
them in Xen-4.6.0):

http://downloads.xen.org/Wiki/VirtioOnXen/qemu-01-xenpv-exec.patch
http://downloads.xen.org/Wiki/VirtioOnXen/qemu-02-virtio-for-pv.patch

Also, since 9p is being worked on, which is a filesystem that should be
implemented in a kernel rather than a hypervisor, are you looking to
contribute this driver to the Linux kernel?

On Mon, Nov 16, 2015 at 10:02 PM, Linda <lindaj@jma3.com> wrote:

> Hi Wei,
>
> On 11/16/2015 10:35 AM, Wei Liu wrote:
>
>> On Mon, Nov 16, 2015 at 10:22:41AM -0700, Linda wrote:
>>
> ...
>
>>
>>> The bug is a timing issue:  During virtio's probe step, on the front
>>> end, it
>>> initialized the mount path.  Since at that time, the front end doesn't
>>> have
>>> access to the back end's entries in xenstore (AFIACT), I either need to
>>> put
>>> it in xenstore prior to starting, or move the access to this information
>>> to
>>> later in the initialization.
>>>
>>> Note, I used the past tense on what virtio did, as of last summer: when I
>>> looked at it last week, it appears to have changed since I first used it
>>> as
>>> a template.    I need to investigate this further.
>>>
>>> OK.
>>
>> Finally, I've made no provision for how to mount more than one file system
>>> for the same guest.  This is a feature that virtio provides for in the
>>> front-end code (as do I), but I am unclear about how this works in the
>>> back-end or at the user level.  This is what I suspect will be different
>>> in
>>> xen, and I'd like some input on what it should look like.
>>>
>> I think this comes down to how your design the xenstore protocol to
>> represent different mount points.
>>
> And just reading this gave me the answer I need.
>
>>
>> The code freeze for next release is going to be end of March next year.
>>>> As software engineer often overestimates the progress he or she can
>>>> make, I would say we shall aim for getting something working as soon as
>>>> possible. Get the design straight and something clean by the end of this
>>>> year would be good.
>>>>
>>> Sounds good to me.  I'm happy to keep working on this.  I just didn't
>>> want
>>> to find myself in a position where I needed to pass this on to someone
>>> else,
>>> but I didn't give that person enough time to finish what I'd done.
>>>
>> Depending on the situation, I can take over the code. You've done enough
>> for this project and we don't really want you to work on it for free --
>> we don't have provision for more funding at the moment.
>>
> Understood.
>
>> If we end up taking over the project, we will still attribute the
>> initial implementation to you.
>>
>     Thanks.  Julien said essentially the same thing.  Right now, I'm
> working on average, less than 10 hours/week, so it's enough to keep my mind
> engaged, but it doesn't interfere with anything else.
>     I will be working for pay, in some capacity (TBD), after the first of
> the year.   Right now, I'm working to line things up.
>     Unless something changes drastically, I'll continue to work on this
> until the end of the year.  I'll start by cleaning things up, and keep it
> that way, so no matter what happens, you, or Julien, can take it over.
>
> Linda
>
>
>> Wei.
>>
>>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel
>



-- 
My Blog: http://www.neilscomputerblog.blogspot.com/
Twitter: @neilsikka

[-- Attachment #1.2: Type: text/html, Size: 5645 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

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

* Re: 9p file system for xen
  2015-11-17 18:35             ` Neil Sikka
@ 2015-11-17 19:50               ` Linda
  2015-11-18  9:56                 ` Wei Liu
  0 siblings, 1 reply; 22+ messages in thread
From: Linda @ 2015-11-17 19:50 UTC (permalink / raw)
  To: Neil Sikka; +Cc: Julien Grall, Wei Liu, xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 4537 bytes --]



On 11/17/2015 11:35 AM, Neil Sikka wrote:
> How does Linda's work relate to Wei's patches available here (I didnt 
> see them in Xen-4.6.0):
>
> http://downloads.xen.org/Wiki/VirtioOnXen/qemu-01-xenpv-exec.patch
> http://downloads.xen.org/Wiki/VirtioOnXen/qemu-02-virtio-for-pv.patch
I'll let Wei answer this.
>
> Also, since 9p is being worked on, which is a filesystem that should 
> be implemented in a kernel rather than a hypervisor, are you looking 
> to contribute this driver to the Linux kernel?
What I did was write new kernel routines and new Qemu routines, as well 
as modifying a few existing Qemu files.  The initialization is currently 
done manually by modifying xenstore.  This is the only code that 
properly belongs in the hypervisor.

I hope this clarifies things.

Linda
>
> On Mon, Nov 16, 2015 at 10:02 PM, Linda <lindaj@jma3.com 
> <mailto:lindaj@jma3.com>> wrote:
>
>     Hi Wei,
>
>     On 11/16/2015 10:35 AM, Wei Liu wrote:
>
>         On Mon, Nov 16, 2015 at 10:22:41AM -0700, Linda wrote:
>
>     ...
>
>
>             The bug is a timing issue:  During virtio's probe step, on
>             the front end, it
>             initialized the mount path.  Since at that time, the front
>             end doesn't have
>             access to the back end's entries in xenstore (AFIACT), I
>             either need to put
>             it in xenstore prior to starting, or move the access to
>             this information to
>             later in the initialization.
>
>             Note, I used the past tense on what virtio did, as of last
>             summer: when I
>             looked at it last week, it appears to have changed since I
>             first used it as
>             a template.    I need to investigate this further.
>
>         OK.
>
>             Finally, I've made no provision for how to mount more than
>             one file system
>             for the same guest.  This is a feature that virtio
>             provides for in the
>             front-end code (as do I), but I am unclear about how this
>             works in the
>             back-end or at the user level.  This is what I suspect
>             will be different in
>             xen, and I'd like some input on what it should look like.
>
>         I think this comes down to how your design the xenstore
>         protocol to
>         represent different mount points.
>
>     And just reading this gave me the answer I need.
>
>
>                 The code freeze for next release is going to be end of
>                 March next year.
>                 As software engineer often overestimates the progress
>                 he or she can
>                 make, I would say we shall aim for getting something
>                 working as soon as
>                 possible. Get the design straight and something clean
>                 by the end of this
>                 year would be good.
>
>             Sounds good to me.  I'm happy to keep working on this.  I
>             just didn't want
>             to find myself in a position where I needed to pass this
>             on to someone else,
>             but I didn't give that person enough time to finish what
>             I'd done.
>
>         Depending on the situation, I can take over the code. You've
>         done enough
>         for this project and we don't really want you to work on it
>         for free --
>         we don't have provision for more funding at the moment.
>
>     Understood.
>
>         If we end up taking over the project, we will still attribute the
>         initial implementation to you.
>
>         Thanks.  Julien said essentially the same thing.  Right now,
>     I'm working on average, less than 10 hours/week, so it's enough to
>     keep my mind engaged, but it doesn't interfere with anything else.
>         I will be working for pay, in some capacity (TBD), after the
>     first of the year.   Right now, I'm working to line things up.
>         Unless something changes drastically, I'll continue to work on
>     this until the end of the year.  I'll start by cleaning things up,
>     and keep it that way, so no matter what happens, you, or Julien,
>     can take it over.
>
>     Linda
>
>
>         Wei.
>
>
>
>     _______________________________________________
>     Xen-devel mailing list
>     Xen-devel@lists.xen.org <mailto:Xen-devel@lists.xen.org>
>     http://lists.xen.org/xen-devel
>
>
>
>
> -- 
> My Blog: http://www.neilscomputerblog.blogspot.com/
> Twitter: @neilsikka


[-- Attachment #1.2: Type: text/html, Size: 9270 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

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

* Re: 9p file system for xen
  2015-11-17 19:50               ` Linda
@ 2015-11-18  9:56                 ` Wei Liu
  2015-11-19 14:55                   ` Neil Sikka
  2015-11-30 17:19                   ` Neil Sikka
  0 siblings, 2 replies; 22+ messages in thread
From: Wei Liu @ 2015-11-18  9:56 UTC (permalink / raw)
  To: Linda; +Cc: Julien Grall, Neil Sikka, Wei Liu, xen-devel

On Tue, Nov 17, 2015 at 12:50:29PM -0700, Linda wrote:
> 
> 
> On 11/17/2015 11:35 AM, Neil Sikka wrote:
> >How does Linda's work relate to Wei's patches available here (I didnt see
> >them in Xen-4.6.0):
> >
> >http://downloads.xen.org/Wiki/VirtioOnXen/qemu-01-xenpv-exec.patch
> >http://downloads.xen.org/Wiki/VirtioOnXen/qemu-02-virtio-for-pv.patch
> I'll let Wei answer this.

That wasn't upstreamed at all. Admittedly that was done when I didn't
know much about Xen. I would have done that project differently
nowadays.

And to clarify things: virtio on Xen is a different project than 9pfs on
Xen. 9pfs is not tied to virtio in any way. Just that there is currently
only virtio-9pfs available.

So to make 9pfs work on Xen, there are at least two ways. One is to make
virtio work on Xen so that we subsequently get virtio-9pfs (along with
all other virtio devices); the other is to implement xen-9pfs (I made up
this name).

I'm not sure whether you're interested in virtio on Xen or just 9pfs.

> >
> >Also, since 9p is being worked on, which is a filesystem that should be
> >implemented in a kernel rather than a hypervisor, are you looking to
> >contribute this driver to the Linux kernel?
> What I did was write new kernel routines and new Qemu routines, as well as

I think Neil was talking about the "new kernel routines". Yes, that
would need to be upstreamed eventually.

Wei.

> modifying a few existing Qemu files.  The initialization is currently done
> manually by modifying xenstore.  This is the only code that properly belongs
> in the hypervisor.
> 
> I hope this clarifies things.
> 
> Linda

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

* Re: 9p file system for xen
  2015-11-18  9:56                 ` Wei Liu
@ 2015-11-19 14:55                   ` Neil Sikka
  2015-11-19 15:03                     ` Wei Liu
  2015-11-30 17:19                   ` Neil Sikka
  1 sibling, 1 reply; 22+ messages in thread
From: Neil Sikka @ 2015-11-19 14:55 UTC (permalink / raw)
  To: Wei Liu; +Cc: Julien Grall, xen-devel, Linda


[-- Attachment #1.1: Type: text/plain, Size: 2148 bytes --]

Is there any documentation about planned interfaces and API contracts for
people building around the virtio/9pfs layers? For example, while this is
still getting debugged/checked in, in order to build DomU support for these
devices, the expected API contracts/interfaces would need to be known.

On Wed, Nov 18, 2015 at 4:56 AM, Wei Liu <wei.liu2@citrix.com> wrote:

> On Tue, Nov 17, 2015 at 12:50:29PM -0700, Linda wrote:
> >
> >
> > On 11/17/2015 11:35 AM, Neil Sikka wrote:
> > >How does Linda's work relate to Wei's patches available here (I didnt
> see
> > >them in Xen-4.6.0):
> > >
> > >http://downloads.xen.org/Wiki/VirtioOnXen/qemu-01-xenpv-exec.patch
> > >http://downloads.xen.org/Wiki/VirtioOnXen/qemu-02-virtio-for-pv.patch
> > I'll let Wei answer this.
>
> That wasn't upstreamed at all. Admittedly that was done when I didn't
> know much about Xen. I would have done that project differently
> nowadays.
>
> And to clarify things: virtio on Xen is a different project than 9pfs on
> Xen. 9pfs is not tied to virtio in any way. Just that there is currently
> only virtio-9pfs available.
>
> So to make 9pfs work on Xen, there are at least two ways. One is to make
> virtio work on Xen so that we subsequently get virtio-9pfs (along with
> all other virtio devices); the other is to implement xen-9pfs (I made up
> this name).
>
> I'm not sure whether you're interested in virtio on Xen or just 9pfs.
>
> > >
> > >Also, since 9p is being worked on, which is a filesystem that should be
> > >implemented in a kernel rather than a hypervisor, are you looking to
> > >contribute this driver to the Linux kernel?
> > What I did was write new kernel routines and new Qemu routines, as well
> as
>
> I think Neil was talking about the "new kernel routines". Yes, that
> would need to be upstreamed eventually.
>
> Wei.
>
> > modifying a few existing Qemu files.  The initialization is currently
> done
> > manually by modifying xenstore.  This is the only code that properly
> belongs
> > in the hypervisor.
> >
> > I hope this clarifies things.
> >
> > Linda
>



-- 
My Blog: http://www.neilscomputerblog.blogspot.com/
Twitter: @neilsikka

[-- Attachment #1.2: Type: text/html, Size: 3236 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

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

* Re: 9p file system for xen
  2015-11-19 14:55                   ` Neil Sikka
@ 2015-11-19 15:03                     ` Wei Liu
  2015-11-19 16:23                       ` Linda
  0 siblings, 1 reply; 22+ messages in thread
From: Wei Liu @ 2015-11-19 15:03 UTC (permalink / raw)
  To: Neil Sikka; +Cc: Julien Grall, xen-devel, Wei Liu, Linda

On Thu, Nov 19, 2015 at 09:55:00AM -0500, Neil Sikka wrote:
> Is there any documentation about planned interfaces and API contracts for
> people building around the virtio/9pfs layers? For example, while this is

I assume that you're interested in getting 9pfs to work but don't care
much about how it is made to work? I ask because I'm a bit confused by
the notion of "virtio/9pfs" because what Linda did wasn't based on
virtio transport.

> still getting debugged/checked in, in order to build DomU support for these
> devices, the expected API contracts/interfaces would need to be known.
> 

I'm not sure I get your question. What do you mean by "build DomU
support"? What kind of DomU support needs insider knowledge of how 9pfs
is setup? Are you talking about your own management stack that starts
VM?

Wei.

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

* Re: 9p file system for xen
  2015-11-17  3:02           ` Linda
  2015-11-17 18:35             ` Neil Sikka
@ 2015-11-19 15:05             ` Wei Liu
  1 sibling, 0 replies; 22+ messages in thread
From: Wei Liu @ 2015-11-19 15:05 UTC (permalink / raw)
  To: Linda; +Cc: Julien Grall, Wei Liu, xen-devel

On Mon, Nov 16, 2015 at 08:02:35PM -0700, Linda wrote:
> Hi Wei,
> 
> On 11/16/2015 10:35 AM, Wei Liu wrote:
> >On Mon, Nov 16, 2015 at 10:22:41AM -0700, Linda wrote:
> ...
> >>
> >>The bug is a timing issue:  During virtio's probe step, on the front end, it
> >>initialized the mount path.  Since at that time, the front end doesn't have
> >>access to the back end's entries in xenstore (AFIACT), I either need to put
> >>it in xenstore prior to starting, or move the access to this information to
> >>later in the initialization.
> >>
> >>Note, I used the past tense on what virtio did, as of last summer: when I
> >>looked at it last week, it appears to have changed since I first used it as
> >>a template.    I need to investigate this further.
> >>
> >OK.
> >
> >>Finally, I've made no provision for how to mount more than one file system
> >>for the same guest.  This is a feature that virtio provides for in the
> >>front-end code (as do I), but I am unclear about how this works in the
> >>back-end or at the user level.  This is what I suspect will be different in
> >>xen, and I'd like some input on what it should look like.
> >I think this comes down to how your design the xenstore protocol to
> >represent different mount points.
> And just reading this gave me the answer I need.
> >
> >>>The code freeze for next release is going to be end of March next year.
> >>>As software engineer often overestimates the progress he or she can
> >>>make, I would say we shall aim for getting something working as soon as
> >>>possible. Get the design straight and something clean by the end of this
> >>>year would be good.
> >>Sounds good to me.  I'm happy to keep working on this.  I just didn't want
> >>to find myself in a position where I needed to pass this on to someone else,
> >>but I didn't give that person enough time to finish what I'd done.
> >Depending on the situation, I can take over the code. You've done enough
> >for this project and we don't really want you to work on it for free --
> >we don't have provision for more funding at the moment.
> Understood.
> >If we end up taking over the project, we will still attribute the
> >initial implementation to you.
>     Thanks.  Julien said essentially the same thing.  Right now, I'm working
> on average, less than 10 hours/week, so it's enough to keep my mind engaged,
> but it doesn't interfere with anything else.
>     I will be working for pay, in some capacity (TBD), after the first of
> the year.   Right now, I'm working to line things up.
>     Unless something changes drastically, I'll continue to work on this
> until the end of the year.  I'll start by cleaning things up, and keep it
> that way, so no matter what happens, you, or Julien, can take it over.
> 

Linda, I will be on vacation early December until early January. I do
want to be do some preparatory work before I leave. Can you just post
what you have to xen-devel? Your code doesn't need to be perfect. I can
handle the rest.

Wei.

> Linda
> >
> >Wei.
> >
> 

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

* Re: 9p file system for xen
  2015-11-19 15:03                     ` Wei Liu
@ 2015-11-19 16:23                       ` Linda
  2015-11-23 15:51                         ` Neil Sikka
  0 siblings, 1 reply; 22+ messages in thread
From: Linda @ 2015-11-19 16:23 UTC (permalink / raw)
  To: Wei Liu, Neil Sikka; +Cc: Julien Grall, xen-devel

Hi Wei,

On 11/19/2015 8:03 AM, Wei Liu wrote:
> On Thu, Nov 19, 2015 at 09:55:00AM -0500, Neil Sikka wrote:
>> Is there any documentation about planned interfaces and API contracts for
>> people building around the virtio/9pfs layers? For example, while this is
> I assume that you're interested in getting 9pfs to work but don't care
> much about how it is made to work? I ask because I'm a bit confused by
> the notion of "virtio/9pfs" because what Linda did wasn't based on
> virtio transport.
A clarification:  If you mean the virtio 9pfs transport, my code is 
based on that, and sits on top of it.
>
>> still getting debugged/checked in, in order to build DomU support for these
>> devices, the expected API contracts/interfaces would need to be known.
>>
> I'm not sure I get your question. What do you mean by "build DomU
> support"? What kind of DomU support needs insider knowledge of how 9pfs
> is setup? Are you talking about your own management stack that starts
> VM?
>
> Wei.
>

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

* Re: 9p file system for xen
  2015-11-19 16:23                       ` Linda
@ 2015-11-23 15:51                         ` Neil Sikka
  2015-11-23 16:05                           ` Wei Liu
  0 siblings, 1 reply; 22+ messages in thread
From: Neil Sikka @ 2015-11-23 15:51 UTC (permalink / raw)
  To: Linda; +Cc: Julien Grall, Wei Liu, xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 1581 bytes --]

Wei, based on our discussions, you will review as much as possible before
leaving for vacation, and have started last Wednesday. Could you please
share what you are reviewing so I (and anyone else interested) can also
assist in reviewing it?

As you said, the front/back end negotiation protocols need to be designed
and agreed upon, and we can start that now in parallel with the code review.

On Thu, Nov 19, 2015 at 11:23 AM, Linda <lindaj@jma3.com> wrote:

> Hi Wei,
>
> On 11/19/2015 8:03 AM, Wei Liu wrote:
>
>> On Thu, Nov 19, 2015 at 09:55:00AM -0500, Neil Sikka wrote:
>>
>>> Is there any documentation about planned interfaces and API contracts for
>>> people building around the virtio/9pfs layers? For example, while this is
>>>
>> I assume that you're interested in getting 9pfs to work but don't care
>> much about how it is made to work? I ask because I'm a bit confused by
>> the notion of "virtio/9pfs" because what Linda did wasn't based on
>> virtio transport.
>>
> A clarification:  If you mean the virtio 9pfs transport, my code is based
> on that, and sits on top of it.
>
>
>> still getting debugged/checked in, in order to build DomU support for
>>> these
>>> devices, the expected API contracts/interfaces would need to be known.
>>>
>>> I'm not sure I get your question. What do you mean by "build DomU
>> support"? What kind of DomU support needs insider knowledge of how 9pfs
>> is setup? Are you talking about your own management stack that starts
>> VM?
>>
>> Wei.
>>
>>
>


-- 
My Blog: http://www.neilscomputerblog.blogspot.com/
Twitter: @neilsikka

[-- Attachment #1.2: Type: text/html, Size: 2911 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

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

* Re: 9p file system for xen
  2015-11-23 15:51                         ` Neil Sikka
@ 2015-11-23 16:05                           ` Wei Liu
  0 siblings, 0 replies; 22+ messages in thread
From: Wei Liu @ 2015-11-23 16:05 UTC (permalink / raw)
  To: Neil Sikka; +Cc: Julien Grall, xen-devel, Wei Liu, Linda

On Mon, Nov 23, 2015 at 10:51:04AM -0500, Neil Sikka wrote:
> Wei, based on our discussions, you will review as much as possible before
> leaving for vacation, and have started last Wednesday. Could you please
> share what you are reviewing so I (and anyone else interested) can also
> assist in reviewing it?
> 

What I meant was "when patches are posted to xen-devel I will try to
review as much as possible". There is no patch on xen-devel so I haven't
actually reviewed anything, nor can anyone else who is interested in
getting it work review anything.

What I started last Wednesday was refactoring some QEMU code (only
renaming files and making QEMU build), so that QEMU 9pfs doesn't just
assume it is using virtio transport. I didn't mean I started review
anything.

Further discussion should go to xen-devel. There is definitely a need to
get input from wider community to better coordinate this work.

Wei.

> As you said, the front/back end negotiation protocols need to be designed
> and agreed upon, and we can start that now in parallel with the code review.
> 
> On Thu, Nov 19, 2015 at 11:23 AM, Linda <lindaj@jma3.com> wrote:
> 
> > Hi Wei,
> >
> > On 11/19/2015 8:03 AM, Wei Liu wrote:
> >
> >> On Thu, Nov 19, 2015 at 09:55:00AM -0500, Neil Sikka wrote:
> >>
> >>> Is there any documentation about planned interfaces and API contracts for
> >>> people building around the virtio/9pfs layers? For example, while this is
> >>>
> >> I assume that you're interested in getting 9pfs to work but don't care
> >> much about how it is made to work? I ask because I'm a bit confused by
> >> the notion of "virtio/9pfs" because what Linda did wasn't based on
> >> virtio transport.
> >>
> > A clarification:  If you mean the virtio 9pfs transport, my code is based
> > on that, and sits on top of it.
> >
> >
> >> still getting debugged/checked in, in order to build DomU support for
> >>> these
> >>> devices, the expected API contracts/interfaces would need to be known.
> >>>
> >>> I'm not sure I get your question. What do you mean by "build DomU
> >> support"? What kind of DomU support needs insider knowledge of how 9pfs
> >> is setup? Are you talking about your own management stack that starts
> >> VM?
> >>
> >> Wei.
> >>
> >>
> >
> 
> 
> -- 
> My Blog: http://www.neilscomputerblog.blogspot.com/
> Twitter: @neilsikka

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

* Re: 9p file system for xen
  2015-11-18  9:56                 ` Wei Liu
  2015-11-19 14:55                   ` Neil Sikka
@ 2015-11-30 17:19                   ` Neil Sikka
  2015-12-01 11:47                     ` Wei Liu
  1 sibling, 1 reply; 22+ messages in thread
From: Neil Sikka @ 2015-11-30 17:19 UTC (permalink / raw)
  To: Wei Liu; +Cc: Julien Grall, xen-devel, Linda


[-- Attachment #1.1: Type: text/plain, Size: 2129 bytes --]

Hi Wei, could you please explain why/how you would have done the project
differently now and why these patches are not "good"? From my conversation
with Linda, I understood that her code is "Independent of virtio except the
9pvirtio specific code, which is used extensively."

On Wed, Nov 18, 2015 at 4:56 AM, Wei Liu <wei.liu2@citrix.com> wrote:

> On Tue, Nov 17, 2015 at 12:50:29PM -0700, Linda wrote:
> >
> >
> > On 11/17/2015 11:35 AM, Neil Sikka wrote:
> > >How does Linda's work relate to Wei's patches available here (I didnt
> see
> > >them in Xen-4.6.0):
> > >
> > >http://downloads.xen.org/Wiki/VirtioOnXen/qemu-01-xenpv-exec.patch
> > >http://downloads.xen.org/Wiki/VirtioOnXen/qemu-02-virtio-for-pv.patch
> > I'll let Wei answer this.
>
> That wasn't upstreamed at all. Admittedly that was done when I didn't
> know much about Xen. I would have done that project differently
> nowadays.
>
> And to clarify things: virtio on Xen is a different project than 9pfs on
> Xen. 9pfs is not tied to virtio in any way. Just that there is currently
> only virtio-9pfs available.
>
> So to make 9pfs work on Xen, there are at least two ways. One is to make
> virtio work on Xen so that we subsequently get virtio-9pfs (along with
> all other virtio devices); the other is to implement xen-9pfs (I made up
> this name).
>
> I'm not sure whether you're interested in virtio on Xen or just 9pfs.
>
> > >
> > >Also, since 9p is being worked on, which is a filesystem that should be
> > >implemented in a kernel rather than a hypervisor, are you looking to
> > >contribute this driver to the Linux kernel?
> > What I did was write new kernel routines and new Qemu routines, as well
> as
>
> I think Neil was talking about the "new kernel routines". Yes, that
> would need to be upstreamed eventually.
>
> Wei.
>
> > modifying a few existing Qemu files.  The initialization is currently
> done
> > manually by modifying xenstore.  This is the only code that properly
> belongs
> > in the hypervisor.
> >
> > I hope this clarifies things.
> >
> > Linda
>



-- 
My Blog: http://www.neilscomputerblog.blogspot.com/
Twitter: @neilsikka

[-- Attachment #1.2: Type: text/html, Size: 3218 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

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

* Re: 9p file system for xen
  2015-11-30 17:19                   ` Neil Sikka
@ 2015-12-01 11:47                     ` Wei Liu
  2015-12-01 14:37                       ` Linda
  0 siblings, 1 reply; 22+ messages in thread
From: Wei Liu @ 2015-12-01 11:47 UTC (permalink / raw)
  To: Neil Sikka; +Cc: Julien Grall, xen-devel, Wei Liu, Linda

On Mon, Nov 30, 2015 at 12:19:18PM -0500, Neil Sikka wrote:
> Hi Wei, could you please explain why/how you would have done the project
> differently now and why these patches are not "good"? From my conversation
> with Linda, I understood that her code is "Independent of virtio except the
> 9pvirtio specific code, which is used extensively."
> 

I need to implement a xen transport for 9pfs. Linda was essentially
doing the same. But she didn't specify the canonical protocol between
frontend and backend.

As for "9pvirtio specific code", I think there is misunderstanding
because though a lot of files in QEMU are prefixed with virtio they are
actually not specific to virtio at all. I think the "independent of
virtio ..." part was referring to the new transport she wrote.

Wei.

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

* Re: 9p file system for xen
  2015-12-01 11:47                     ` Wei Liu
@ 2015-12-01 14:37                       ` Linda
  2015-12-01 14:46                         ` Wei Liu
  0 siblings, 1 reply; 22+ messages in thread
From: Linda @ 2015-12-01 14:37 UTC (permalink / raw)
  To: Wei Liu, Neil Sikka; +Cc: Julien Grall, xen-devel



On 12/1/2015 4:47 AM, Wei Liu wrote:
> On Mon, Nov 30, 2015 at 12:19:18PM -0500, Neil Sikka wrote:
>> Hi Wei, could you please explain why/how you would have done the project
>> differently now and why these patches are not "good"? From my conversation
>> with Linda, I understood that her code is "Independent of virtio except the
>> 9pvirtio specific code, which is used extensively."
>>
> I need to implement a xen transport for 9pfs. Linda was essentially
> doing the same. But she didn't specify the canonical protocol between
> frontend and backend.
For my own edification:  In the interests of the limited time of my 
internship, we decided I shouldn't do the initialization using the xen 
toolstack.  Were there are other expediencies that I'm unaware of?

I tried to follow the xen handshaking protocol between front and back 
end at startup.

Thanks.

Linda
>
> As for "9pvirtio specific code", I think there is misunderstanding
> because though a lot of files in QEMU are prefixed with virtio they are
> actually not specific to virtio at all. I think the "independent of
> virtio ..." part was referring to the new transport she wrote.
>
> Wei.
>

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

* Re: 9p file system for xen
  2015-12-01 14:37                       ` Linda
@ 2015-12-01 14:46                         ` Wei Liu
  2015-12-01 15:27                           ` Linda
  2015-12-02 17:40                           ` Linda
  0 siblings, 2 replies; 22+ messages in thread
From: Wei Liu @ 2015-12-01 14:46 UTC (permalink / raw)
  To: Linda; +Cc: Julien Grall, Neil Sikka, Wei Liu, xen-devel

On Tue, Dec 01, 2015 at 07:37:43AM -0700, Linda wrote:
> 
> 
> On 12/1/2015 4:47 AM, Wei Liu wrote:
> >On Mon, Nov 30, 2015 at 12:19:18PM -0500, Neil Sikka wrote:
> >>Hi Wei, could you please explain why/how you would have done the project
> >>differently now and why these patches are not "good"? From my conversation
> >>with Linda, I understood that her code is "Independent of virtio except the
> >>9pvirtio specific code, which is used extensively."
> >>
> >I need to implement a xen transport for 9pfs. Linda was essentially
> >doing the same. But she didn't specify the canonical protocol between
> >frontend and backend.
> For my own edification:  In the interests of the limited time of my
> internship, we decided I shouldn't do the initialization using the xen
> toolstack.  Were there are other expediencies that I'm unaware of?
> 

It's not about toolstack. Toolstack merely sets up xenstore nodes
according to the protocol.

> I tried to follow the xen handshaking protocol between front and back end at
> startup.
> 

Yes, that's the right direction. Following existing convention is good
enough for an intern project. Specifying the protocol in detailed is not
the requirement for a prototype.

But in the end to upstream xen-9pfs a canonical protocol is required.  A
blessed version of protocol needs to be committed to xen.git tree.  We
have a bunch of those in xen.git/xen/include/public/io/ directory.

Wei.

> Thanks.
> 
> Linda
> >
> >As for "9pvirtio specific code", I think there is misunderstanding
> >because though a lot of files in QEMU are prefixed with virtio they are
> >actually not specific to virtio at all. I think the "independent of
> >virtio ..." part was referring to the new transport she wrote.
> >
> >Wei.
> >
> 

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

* Re: 9p file system for xen
  2015-12-01 14:46                         ` Wei Liu
@ 2015-12-01 15:27                           ` Linda
  2015-12-02 17:40                           ` Linda
  1 sibling, 0 replies; 22+ messages in thread
From: Linda @ 2015-12-01 15:27 UTC (permalink / raw)
  To: Wei Liu; +Cc: Julien Grall, Neil Sikka, xen-devel



On 12/1/2015 7:46 AM, Wei Liu wrote:
> On Tue, Dec 01, 2015 at 07:37:43AM -0700, Linda wrote:
>>
>> On 12/1/2015 4:47 AM, Wei Liu wrote:
>>> On Mon, Nov 30, 2015 at 12:19:18PM -0500, Neil Sikka wrote:
>>>> Hi Wei, could you please explain why/how you would have done the project
>>>> differently now and why these patches are not "good"? From my conversation
>>>> with Linda, I understood that her code is "Independent of virtio except the
>>>> 9pvirtio specific code, which is used extensively."
>>>>
>>> I need to implement a xen transport for 9pfs. Linda was essentially
>>> doing the same. But she didn't specify the canonical protocol between
>>> frontend and backend.
>> For my own edification:  In the interests of the limited time of my
>> internship, we decided I shouldn't do the initialization using the xen
>> toolstack.  Were there are other expediencies that I'm unaware of?
>>
> It's not about toolstack. Toolstack merely sets up xenstore nodes
> according to the protocol.
>
>> I tried to follow the xen handshaking protocol between front and back end at
>> startup.
>>
> Yes, that's the right direction. Following existing convention is good
> enough for an intern project. Specifying the protocol in detailed is not
> the requirement for a prototype.
>
> But in the end to upstream xen-9pfs a canonical protocol is required.  A
> blessed version of protocol needs to be committed to xen.git tree.  We
> have a bunch of those in xen.git/xen/include/public/io/ directory.
>
> Wei.
Thank you.

L
>> Thanks.
>>
>> Linda
>>> As for "9pvirtio specific code", I think there is misunderstanding
>>> because though a lot of files in QEMU are prefixed with virtio they are
>>> actually not specific to virtio at all. I think the "independent of
>>> virtio ..." part was referring to the new transport she wrote.
>>>
>>> Wei.
>>>

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

* Re: 9p file system for xen
  2015-12-01 14:46                         ` Wei Liu
  2015-12-01 15:27                           ` Linda
@ 2015-12-02 17:40                           ` Linda
  1 sibling, 0 replies; 22+ messages in thread
From: Linda @ 2015-12-02 17:40 UTC (permalink / raw)
  To: Wei Liu; +Cc: Julien Grall, xen-devel

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

Hello,
     Wei has suggested I "send a summarised email on [my] work to 
xen-devel so that people are aware of [my] work."
     To that end, and to save Wei from reinventing the wheel, I am 
providing the following:

      First to correct a misconception, I followed the state change 
protocol of xen, as outlined by Ian Campbell in his 6/11 email on 
"Re:[xen-devel]grant tables and driver handshaking".
     This was tested early in the summer when I passed a small amount of 
data between my initial front and back ends.   The code resides in the 
files p9_front.c, p9_front_driver.c on the front end and xen_9pif.c on 
the backend.
     I am attaching an updated version of a writeup I made this summer.  
It's table of contents is:
     1.  The state of the project
     2.  The approach I took
     3.  How to build my project
     4.  How to use it.

Sincerely,

Linda Jacobson



[-- Attachment #2: ljoutreach.txt --]
[-- Type: text/plain, Size: 8964 bytes --]

I.  PROJECT STATUS

The project compiles and builds.  The backend initialization works.  The front
end works partway through initialization. It dies in probe.  This is because I
initialized the mount path in the backend using the xenstore backend path, and
tried to access it in the frontend with its path.  Currently this path is hardcoded
in the init code in xen_9pif.c.  As I wrote in my commit message, this should be
done in initialization.  Ideally, to handle multiple mounts, the xenstore path
should have a "mount directory" that contains all the file system mount paths.

In addition, all of the front and backend code to manage the ring and the
one entry grant table, as well as transferring data to and from the shared page
has been tested and works.

Most of the code for the entire project has been written.

What I was going to do next (in this order) was:
   
    1.  Test:
    	a.  That the data transferred accurately.
	b.  That the organization of the data being transferred is as I
	understand it.
    2.  Add and test transferring > 1 page of data.  If 3b is AIUI, this is
       trivial.
    3.  Restore some of the configuration dependencies in the makefiles in qemu,
        and set them in the configure file.  (See notes below)
    4.  Fix the white space in the different files.  

II.  APPROACH

I re-used a fair amount of virtio 9p code to produce the above.
In this respect, the front-end required more code, but less modification to
existing code.

II. A.  Front-end
When I began, I assumed the code should eventually reside in net/9p.
Only one file in this directory trans_virtio.c contains code that is virtio
specific.  The files client.c and mod.c, while technically part of virtio,
could be used as is, and my code calls functions in these files.

What I realized, in writing the backend, is that virtio provided the code that
takes the initial client request, massages it, and "unmarshals" these requests
in the backend.  Client.c and mod.c, do this massaging in the front-end.  The
format of the data that client.c sends in a request is easily moved to a
scatter-gather list.

p9_front_driver.c contains all the functions specified in the xenbus_driver
struct.  The module initialization registers the front end with xenbus, and
calls the 9p initialization code (in trans_xen9p.c) to register the 9p
transport.

The functions in trans_xen9p.c mimic their counterparts in trans_virtio.c, in
that they provide the same functionality.  They are the interface between the
functions in client.c and the xen protocol.  They receive requests from the client
and call functions in p9_front.c to issue the request.  The function in
trans_xen9p.c, that handles these requests, is specified in the 9p initialization
code.

p9_front.c contains the code that talks to the back end.  It contains the
p9_connect function, which is invoked when the front and back-end are connected.  It
also manages the ring, and the grant table (which, at present has only one entry),
receives requests from trans_xen9p.c, transfers the data into a shared page,
and issues the request to the backend.  When it receives a response, it passes
the response information to req_done (in trans_xen9p.c), which processes it, and calls the client callback function.

FYI - in linux/fs/fsdev there is the core of the 9p client code.  I did not touch
this code.

II. B. Backend
This was more complicated so I'll break it down into Background and What I did.

Background:
The virtio 9p backend code is composed of many files:  virtio-9p.c contains most
of the code to interpret the request from the client, and a few virtio-specific
functions.  virtio-9p-xattr.c and virtio-9p-xattr-user.c handle extended
attribute requests.  These files reside in qemu/hw/9pfs.

virtio-9p-co*.c contain co-routines for all the functions in virtio-9p.c and
virtio-xattr.c.

virtio-9p-proxy.c, virtio-9p-synth.c, virtio-9p-local.c implement the various
file systems that virtio supports.

virtio-9p-device.c contains an implementation of the qemu object model for 9p.

What I Did:

I broke virtio-9p.c into two files:  virtio-9p.c and v9fs_server.c.
virtio-9p.c now contains three functions:  complete_pdu, handle_9p_output, and a
"constructor", virtio_9p_set_fd_limit.

I created a "wrapper"header file for virtio-9p.h, v9fs_server.h.  This
wrapper creates a container for the V9fsState struct, V9GenericFsState,
that contains a pointer to xen-specific data, and a pointer to a complete
function, that can replace complete_pdu.  There are other function pointers that
I commented out, because they turned out not to be necessary.

v9pfs_server.h also defines GENERIC_9P_SERVER.  In virtio-9p.h, if
GENERIC_9P_SERVER is defined, complete_pdu is defined to translate
to the complete function in V9GenericFsState; if GENERIC_9P_SERVER  is not
defined, complete_pdu is simply declared.  This is the only ifdef I added.

I wrote a new file xen-9p.c that contains a complete_pdu function,
xen_complete_pdu, xen_pdu_handle, and set_fd_limit.  pdu's are the data
structures that are passed among all the functions that handle file requests.
They contain the meta-data necessary to process, and keep track of the request.

xen_pdu_handle takes a requests and creates a pdu for the existing functions to
handle the request.

xen_complete_pdu takes a completed request, frees memory and calls
p9_send_response in xen_9pif.c to handle the response.

The rest of xen_9pif.c contains the code that interacts directly with the xenbus
and indirectly with the front-end.  Much of it was modeled after xen_disk.c, and
tested when I was just passing small amounts of data back and forth.

The backend also contains files in qemu/fsdev that set up the QemuOptsList
tables and massage the data.  I added qemu-xen-fsdev-opts.c, that was patterned
after qemu-fsdev-opts.c.  I also modified qemu-fsdev.c to add debugging
statements.

I modified vl.c and qemu-options.def, in the qemu directory to match what
was done for virtio.  Some of this works, but not all of it.

I also modified xen_backend.h and xen_pv_machine.c to recognize this new
backend.  This code works.

I mentioned I modified the Makefiles, in qemu/hw/9pfs, qemu/fsdev, in qemu/hw,
and in qemu, inappropriately.  I did not learn until the end of my internship
exactly how to manipulate the configure files.  Therefore, I removed or changed
configuration dependencies, rather than change the makefiles.  This should be
fixed.

Some FIXME statements that I put in to remind myself what I needed to do,
actually got done, but I didn't remove the comment.

III.  How to Build My Project

My code now resides only on my github:  lindajac.
The front-end code is in lindajac/lindap9/p9/p9front.

To build it, assemble the front end files (p9_front.c p9_front_driver.c
trans_xen9p.c and p9.h) in a directory with the Makefile.  Copy from
linux/net/9p, the header file trans_common.h, to this directory.
This obviously has to change, when the front end has a permanent home directory.

Type make.  This will give you the front-end module.

My backend resides under the github: lindajac/qemu on the branch mychanges.

Because so much time has passed since my internship, it would have been more
work than I was willing to do for free, for me to sync my project with the
current qemu.   Therefore, this needs to be done.  The files that need to be
merged manually are qemu/vl.c and qemu/hw/9pfs/virtio-9p.c.  Given this caveat,
if you checkout this branch, it will build, and create a usable qemu.

IV.  How to 'Use' My Project

Here are the steps I follow.  These steps have to be followed to test or to run
the Xen 9p system.

1.  Create and pause a guest ( -p option ).
2.  Run xenstore-ls and edit the file to see what the domain number of the guest
is.
3.  Change the xenstore entries per the statements in the shell script
lindap9/p9/p9front/p9xsupdate.sh.  The parameter to this script is the
domain number of the guest.
4.  Start qemu.  The qemu line I have been using (in a shell script) is
<your path to qemu-system-i386> -xen-domid $1 -chardev socket,\
id=libxl-cmd,path=/var/run/xen/qmp-libxl-$1,server,nowait -no-shutdown\
-mon chardev=libxl-cmd,mode=control -chardev socket,id=libxenstat-cmd,\
path=/var/run/xen/qmp-libxenstat-$1,server,nowait -mon chardev=libxenstat-cmd,\
mode=control -nodefaults -xen-attach -name testg -vnc 127.0.0.1:0,to=99
-display none -machine xenpv -m 2048\
-xen9pfs local,security_model=passthrough,id=fsdev0,path=/mnt,mount_tag=P9Mount

where the last line is specific to 9p; all the rest is copied from the qemu
parameters I captured using a shell script, early in this project.  $1 is the
guest domain.
5.  Unpause the guest.
6.  xl console <guest>
7.  enter password.
8.  scp the .ko of the front end to the guest
9.  To run the front-end you need to modprobe my .ko, as well as the kernel modules
linux/net/9p and linux/fs/9p, but they do not need to be built specially, for
things to work.

That's it.




[-- Attachment #3: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

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

end of thread, other threads:[~2015-12-02 17:40 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-13 17:23 9p file system for xen Linda
2015-11-16 15:16 ` Wei Liu
2015-11-16 16:36   ` Linda
2015-11-16 16:51     ` Wei Liu
2015-11-16 17:22       ` Linda
2015-11-16 17:35         ` Wei Liu
2015-11-17  3:02           ` Linda
2015-11-17 18:35             ` Neil Sikka
2015-11-17 19:50               ` Linda
2015-11-18  9:56                 ` Wei Liu
2015-11-19 14:55                   ` Neil Sikka
2015-11-19 15:03                     ` Wei Liu
2015-11-19 16:23                       ` Linda
2015-11-23 15:51                         ` Neil Sikka
2015-11-23 16:05                           ` Wei Liu
2015-11-30 17:19                   ` Neil Sikka
2015-12-01 11:47                     ` Wei Liu
2015-12-01 14:37                       ` Linda
2015-12-01 14:46                         ` Wei Liu
2015-12-01 15:27                           ` Linda
2015-12-02 17:40                           ` Linda
2015-11-19 15:05             ` Wei Liu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.