qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Stefan Hajnoczi <shajnocz@redhat.com>,
	qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] USB MTP emulation state?
Date: Mon, 21 Jul 2014 11:12:24 +0200	[thread overview]
Message-ID: <1405933944.27264.1.camel@nilsson.home.kraxel.org> (raw)
In-Reply-To: <53C92048.70809@redhat.com>

On Fr, 2014-07-18 at 15:25 +0200, Paolo Bonzini wrote:
> I took a quick look at the MTP emulation and the first things I noticed are:
> 
> * all I/O is synchronous
> 	>> I guess this is just a limitation of the code

Correct.

USB subsystem allows to kick off I/O & return (with the special return
code USB_RET_ASYNC), then signal completion for the usb packet later,
using usb_packet_complete().

usb-storage does this for example.

> * it doesn't use the -fsdev infrastructure
> 	>> Perhaps we should rename the "root" property to
> 	   x-root to identify it as experimental?
> 
> * it doesn't do writes
> 	>> No idea if this is a limitation of the protocol
> 
> Anything we can do before 2.1 is out?

Given that we are in hard freeze renaming the root property to move it
into experimental namespace is the only reasonable thing IMO.

A while back I've mailed with Stefan (Cc'ed) a bit about fsdev.  Using
fsdev looks obvious.  But when looking closer again it isn't that clear
any more whenever is a good idea or not as there are a few differences
between mtp and a real filesystem.

You'll go read / write complete files with MTP.  Random access to files
is limited.  There also isn't a concept of ownership and access rights
for files, beside the very basic "file is writable/readonly".  So the
uid mapping fsdev provides doesn't buy us much for MTP, especially not
for readonly access.

Write access is in the protocol.  You don't want only read photos off
your phone, you also want copy your music to it ;)  But, again, without
fine-grained access control.  So I'm not sure how to implement that best
in qemu.  Maybe enabling write access is the feature which tips the
balance to favor fsdev as we might be able to offload most of the write
access control handling (+configuration) to fsdev.  Didn't investigate
in detail yet though.

cheers,
  Gerd

  reply	other threads:[~2014-07-21  9:12 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-18 13:25 [Qemu-devel] USB MTP emulation state? Paolo Bonzini
2014-07-21  9:12 ` Gerd Hoffmann [this message]
2014-07-21  9:47   ` Paolo Bonzini

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=1405933944.27264.1.camel@nilsson.home.kraxel.org \
    --to=kraxel@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=shajnocz@redhat.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 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).