From: Anthony Liguori <aliguori@us.ibm.com>
To: Mark Williamson <mark.williamson@cl.cam.ac.uk>
Cc: Harry Butterworth <harry@hebutterworth.freeserve.co.uk>,
xen-devel@lists.xensource.com,
sanjay kumar <sanjay.kushwaha@gmail.com>
Subject: Re: Re: usbback cleanup code
Date: Mon, 01 May 2006 15:56:40 -0500 [thread overview]
Message-ID: <44567608.4040408@us.ibm.com> (raw)
In-Reply-To: <200605012032.37203.mark.williamson@cl.cam.ac.uk>
FWIW, I took a look at USB over IP. It looks pretty reasonable to me
(plus, it's already in -mm). At this point, I'm convinced we in the
very least want to share code (even if we don't use IP as the actual
transport). It already handles all of the nasty protocol marshaling
stuff. No reason to have two bits of code doing the same thing.
Regards,
Anthony Liguori
Mark Williamson wrote:
>>> I was able to do a little review of the patch a while back but never had
>>> to time finish looking through it properly. It looked much closer to
>>> mergeable, but there still seemed to be quite a lot of abstraction code.
>>> I think in general, folks were hoping to see a minimum amount of
>>> abstraction code with the USB driver instead using the driver APIs
>>> correctly.
>>>
>> As far as I'm aware, the USB code is using the driver API correctly
>> (except possibly for any bugs or where the API may have changed since
>> the last patch I released).
>>
>
> Sorry, didn't mean to imply it wasn't correctly using it now. I meant to
> say "directly", which is not at all the same thing.
>
>
>> I think we have a fairly fundamental disconnect about abstraction. For
>> me, abstraction is a necessary part of good software engineering. Just
>> as I assume you wouldn't write machine code where you could use assembly
>> and wouldn't write assembly where you could write C, I wouldn't write
>> code at a low level of abstraction where it was possible to use a higher
>> level of abstraction. Abstraction is useful to manage complexity and
>> useful to write software which is easier to reason about and easier to
>> modify.
>>
>
> Quite. But it can be a problem where there's just one client, going through
> many layers of abstractions.
>
> There were a lot of files added by your patch which appeared to be utility
> code / abstractions. This is fine in general, but the other drivers seem to
> get away with much less of this kind of thing without suffering unduly in
> terms of complexity. I didn't have time to study the code in detail, but I
> wasn't convinced they were all strictly necessary.
>
>
>>> If you don't want to do any more work on it, then maybe it would make a
>>> good project for somebody.
>>>
>> If anyone wants to pick it up, they are more than welcome but I think it
>> might be worthwhile to wait until some Xen drivers have been
>> successfully merged upstream with Linux since I suspect that there may
>> be some more significant churn in the xenbus/xenstore area before this
>> happens.
>>
>
> Maybe, but I suspect upstream merge is still quite a long way off.
>
> Personally, I've found that the Xenbus APIs are now sufficiently simple to
> work with that it's very little work to establish a shared memory page (I
> hacked up one very quickly for DCSS), after which you don't have to worry
> about them anylonger. I don't think keeping up with the control plane is
> prohibitive now, although it was at one stage.
>
>
>> Isochronous is implemented but untested as I couldn't get the
>> isochronous devices I bought for testing working under native Linux.
>>
>
> OK.
>
>
>> The most difficult remaining work is to fix the protocol to correctly
>> stall URBs during error recovery. I was involved in some discussion
>> about this on the USB mailing list and there was a proposal for a
>> solution but it is fairly tricky. Stalling URBs is required when there
>> is a queue of URBs and an URB fails. If the URBs are not stalled then
>> they may be submitted to the device out-of-order which is a
>> data-integrity exposure.
>>
>
> Any reason not just to fail all the URBs on the queue? It's not the ideal
> response, but I wouldn't see a need to handle error recovery fully initially,
> although it'd be nice in the long run.
>
>
>> Also I would expect the Linux USB stack to have changed again.
>>
>
> 2.6's APIs do change fairly flexibly, but I don't remember there being any
> major changes to the USB stack for some time now.
>
> Cheers,
> Mark
>
>
>> Harry.
>>
>>
>>> Cheers,
>>> Mark
>>>
>>> On May 1 2006, Harry Butterworth wrote:
>>>
>>>> I haven't done any more work on the USB code since the last patch I
>>>> posted to xen-devel. There wasn't any feedback and it wasn't committed.
>>>> I think people were too busy with the release.
>>>>
>>>> I have stopped working on USB. I have done several versions now with no
>>>> success at getting it merged. I think it will be easier to see what is
>>>> required once there are some examples of drivers that have been merged
>>>> with Linux.
>>>>
>>>> On Sat, 2006-04-29 at 19:43 +0000, sanjay kumar wrote:
>>>>
>>>>> Hi Harry,
>>>>> Do you know by what time the USB virtualization code will be commited
>>>>> in the xen-unstable tree?
>>>>>
>>>>> Thanks,
>>>>> Sanjay
>>>>>
>>>>> On 4/3/06, Harry Butterworth <harry@hebutterworth.freeserve.co.uk>
>>>>> wrote:
>>>>> The code is supposed to work with isochronous devices but it's
>>>>> untested
>>>>> so probably doesn't.
>>>>>
>>>>> Harry.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> ----------------------
>>>>> PhD Student, Georgia Tech
>>>>> http://www.cc.gatech.edu/~ksanjay/
>>>>>
>>>> _______________________________________________
>>>> Xen-devel mailing list
>>>> Xen-devel@lists.xensource.com
>>>> http://lists.xensource.com/xen-devel
>>>>
>
>
next prev parent reply other threads:[~2006-05-01 20:56 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <2717599f0603120920x74e317a4mf429f3229bbe90a9@mail.gmail.com>
[not found] ` <1142245114.8822.6.camel@localhost.localdomain>
[not found] ` <2717599f0604030654i52a03ec8n83106b7d8b0d3b96@mail.gmail.com>
[not found] ` <1144076194.9237.45.camel@localhost.localdomain>
[not found] ` <2717599f0604291243y6123a4ccn27d826ea21d4663d@mail.gmail.com>
2006-05-01 4:43 ` usbback cleanup code Harry Butterworth
2006-05-01 14:04 ` M.A. Williamson
2006-05-01 18:59 ` Harry Butterworth
2006-05-01 19:32 ` Mark Williamson
2006-05-01 20:56 ` Anthony Liguori [this message]
2006-05-01 21:10 ` Mark Williamson
2006-05-01 23:41 ` Anthony Liguori
2006-05-02 9:59 ` Harry Butterworth
2006-05-02 11:31 ` Mark Williamson
2006-05-02 12:50 ` Harry Butterworth
2006-05-02 15:38 ` Harry Butterworth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44567608.4040408@us.ibm.com \
--to=aliguori@us.ibm.com \
--cc=harry@hebutterworth.freeserve.co.uk \
--cc=mark.williamson@cl.cam.ac.uk \
--cc=sanjay.kushwaha@gmail.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.