mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Alexandre Courbot <gnurou@gmail.com>
Cc: "Albert Esteve" <aesteve@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Mauro Carvalho Chehab" <mchehab@kernel.org>,
	"Hans Verkuil" <hverkuil@xs4all.nl>,
	"Jason Wang" <jasowang@redhat.com>,
	"Xuan Zhuo" <xuanzhuo@linux.alibaba.com>,
	"Eugenio Pérez" <eperezma@redhat.com>,
	gurchetansingh@google.com, daniel.almeida@collabora.com,
	adelva@google.com, changyeon@google.com,
	nicolas.dufresne@collabora.com, linux-kernel@vger.kernel.org,
	linux-media@vger.kernel.org, virtualization@lists.linux.dev
Subject: Re: [PATCH v3] media: add virtio-media driver
Date: Tue, 17 Jun 2025 11:03:18 +0200	[thread overview]
Message-ID: <20250617110318.7c89d999@foz.lan> (raw)
In-Reply-To: <20250617104938.09d21b7c@foz.lan>

Em Tue, 17 Jun 2025 10:49:38 +0200
Mauro Carvalho Chehab <mchehab+huawei@kernel.org> escreveu:

> Hi Alex,
> 
> Em Tue, 27 May 2025 23:03:39 +0900
> Alexandre Courbot <gnurou@gmail.com> escreveu:
> 
> > > > > Btw, I was looking at:
> > > > >
> > > > >         https://github.com/chromeos/virtio-media
> > > > >
> > > > > (I'm assuming that this is the QEMU counterpart, right?)    
> > > >
> > > > crosvm actually, but QEMU support is also being worked on.    
> > >
> > > Do you have already QEMU patches? The best is to have the Kernel driver
> > > submitted altogether with QEMU, as Kernel developers need it to do the
> > > tests. In my case, I never use crosvm, and I don't have any Chromebook
> > > anymore.    
> > 
> > IIRC Albert Esteve was working on this, maybe he can share the current status.  
> 
> Any news regards to it?
> 
> > Note that crosvm does not require a Chromebook, you can build and run
> > it pretty easily on a regular PC. I have put together a document to
> > help with that:
> > 
> > https://github.com/chromeos/virtio-media/blob/main/TRY_IT_OUT.md  
> 
> I started looking on it today. Already installed crossvm (I had to
> install libcap-devel to build it). Still, I'm not familiar with
> crossvm, which is a little be painful. In particular, how can I
> enable network on it and speedup it? With suggested parameters,
> it picked only one CPU, and very few memory on it:
> 
> 	# cat /proc/cpuinfo|grep processor
> 	processor       : 0
> 
> 	# free
>                total        used        free      shared  buff/cache   available
> 	Mem:          221876       34780      139712         272       56096      187096
> 	Swap:              0           0           0
> 
> I'd like to be able to compile things on it and use ssh/scp. So,
> the VM needs more CPUs, more memory, more network and GPU.
> 
> Btw, on a quick test with v4l2-compliance, something looks weird:
> I started a camera application at the host. Still, v4l2-compliance
> said successfully excecuted mmap:
> 
> Streaming ioctls:
>         test read/write: OK (Not Supported)
>         test blocking wait: OK
>         test MMAP (no poll): OK                           
>         test MMAP (select): OK                            
>         Vide[2025-06-17T08:44:49.177972817+00:00 ERROR virtio_media::ioctl] VIDIOC_REQBUFS: memory type DmaBuf is currently unsupported
> [2025-06-17T08:44:49.178164554+00:00 ERROR virtio_media::ioctl] VIDIOC_REQBUFS: memory type DmaBuf is currently unsupported
> o Capturtest MMAP (epoll): OK                             
>         test USERPTR (no poll): OK (Not Supported)
>         test USERPTR (select): OK (Not Supported)
>         test DMABUF (no poll): OK (Not Supported)
>         test DMABUF (select): OK (Not Supported)
> 
> Which doesn't make any sense, as the host OS should not allow access
> to mmap while streaming.

Ah, this was with the "simple" device, not with the proxy one.
With the proxy one, I'm getting:

# v4l2-ctl --all
Driver Info:
        Driver name      : virtio-media
        Card type        : usb video: usb video
        Bus info         : platform:virtio-media
        Driver version   : 6.15.0
        Capabilities     : 0x84200001
                Video Capture
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x04200001
                Video Capture
                Streaming
                Extended Pix Format
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
        Width/Height      : 1280/720
        Pixel Format      : 'MJPG' (Motion-JPEG)
        Field             : None
        Bytes per Line    : 0
        Size Image        : 1843200
        Colorspace        : sRGB
        Transfer Function : Rec. 709
        YCbCr/HSV Encoding: ITU-R 601
        Quantization      : Default (maps to Full Range)
        Flags             : 
Crop Capability Video Capture:
        Bounds      : Left 0, Top 0, Width 1280, Height 720
        Default     : Left 0, Top 0, Width 1280, Height 720
        Pixel Aspect: 1/1
Selection Video Capture: crop_default, Left 0, Top 0, Width 1280, Height 720, Flags: 
Selection Video Capture: crop_bounds, Left 0, Top 0, Width 1280, Height 720, Flags: 
Streaming Parameters Video Capture:
        Capabilities     : timeperframe
        Frames per second: 30.000 (30/1)
        Read buffers     : 0

User Controls

                     brightness 0x00980900 (int)    : min=-128 max=127 step=1 default=-11 value=-11
                       contrast 0x00980901 (int)    : min=0 max=255 step=1 default=148 value=148
                     saturation 0x00980902 (int)    : min=0 max=255 step=1 default=180 value=180
                            hue 0x00980903 (int)    : min=-128 max=127 step=1 default=0 value=0

# v4l2-compliance -d0 -s

Streaming ioctls:
        test read/write: OK (Not Supported)
        test blocking wait: OK
                fail: v4l2-test-buffers.cpp(1345): node->streamon(q.g_type()) != EINVAL
        test MMAP (no poll): FAIL
                fail: v4l2-test-buffers.cpp(1345): node->streamon(q.g_type()) != EINVAL
        test MMAP (select): FAIL
                fail: v4l2-test-buffers.cpp(1345): node->streamon(q.g_type()) != EINVAL
        test MMAP (epoll): FAIL
        test USERPTR (no poll): OK (Not Supported)
        test USERPTR (select): OK (Not Supported)
[2025-06-17T08:55:20.768760714+00:00 ERROR virtio_media::ioctl] VIDIOC_REQBUFS: memory type DmaBuf is currently unsupported
        test DMABUF (no poll): OK (Not Supported)
[2025-06-17T08:55:20.769745707+00:00 ERROR virtio_media::ioctl] VIDIOC_REQBUFS: memory type DmaBuf is currently unsupported
        test DMABUF (select): OK (Not Supported)

At the host, I'm getting:

Streaming ioctls:
        test read/write: OK (Not Supported)
        test blocking wait: OK
                fail: ../utils/v4l2-compliance/v4l2-test-buffers.cpp(1346): node->streamon(q.g_type()) != EINVAL
        test MMAP (no poll): FAIL
                fail: ../utils/v4l2-compliance/v4l2-test-buffers.cpp(1346): node->streamon(q.g_type()) != EINVAL
        test MMAP (select): FAIL
                fail: ../utils/v4l2-compliance/v4l2-test-buffers.cpp(1346): node->streamon(q.g_type()) != EINVAL
        test MMAP (epoll): FAIL
        test USERPTR (no poll): OK                        
        test USERPTR (select): OK                         
        test DMABUF: Cannot test, specify --expbuf-device

The device I'm using for test is a UVC HDMI capture board:

	Bus 005 Device 008: ID 534d:2109 MacroSilicon usb video

Thanks,
Mauro

  reply	other threads:[~2025-06-17  9:03 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-12  4:08 Alexandre Courbot
2025-04-12 14:27 ` Markus Elfring
2025-05-26 12:13 ` Mauro Carvalho Chehab
2025-05-27  6:14   ` Alexandre Courbot
2025-05-27  9:13     ` Mauro Carvalho Chehab
2025-05-27 13:21       ` Alexandre Courbot
2025-05-27 13:35         ` Mauro Carvalho Chehab
2025-05-27 14:03           ` Alexandre Courbot
2025-05-27 14:42             ` Mauro Carvalho Chehab
2025-06-17  8:49             ` Mauro Carvalho Chehab
2025-06-17  9:03               ` Mauro Carvalho Chehab [this message]
2025-06-17 10:20                 ` Mauro Carvalho Chehab
2025-06-18 14:27                   ` Alexandre Courbot
2025-06-18 15:05                     ` Mauro Carvalho Chehab
2025-06-20 12:03                       ` Alexandre Courbot
2025-09-08 10:03                         ` Mauro Carvalho Chehab
2025-06-18 14:16               ` Alexandre Courbot
2025-06-18 14:40                 ` Mauro Carvalho Chehab
2025-05-27 14:23   ` Michael S. Tsirkin
2025-05-27 14:39     ` Mauro Carvalho Chehab
2025-05-27 15:06       ` Michael S. Tsirkin
2025-05-28 11:07         ` Alexandre Courbot
2025-05-28 16:23 ` Ricardo Ribalda
2025-06-01  9:34   ` Mauro Carvalho Chehab
2025-06-01 10:01     ` Ricardo Ribalda
2025-07-24 17:24       ` Mauro Carvalho Chehab
2025-07-28 11:51         ` Alexandre Courbot
2025-09-09  9:12 ` Mauro Carvalho Chehab
2026-05-29 16:03   ` Brian Daniels
2026-07-12  6:30     ` Mauro Carvalho Chehab

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=20250617110318.7c89d999@foz.lan \
    --to=mchehab+huawei@kernel.org \
    --cc=adelva@google.com \
    --cc=aesteve@redhat.com \
    --cc=changyeon@google.com \
    --cc=daniel.almeida@collabora.com \
    --cc=eperezma@redhat.com \
    --cc=gnurou@gmail.com \
    --cc=gurchetansingh@google.com \
    --cc=hverkuil@xs4all.nl \
    --cc=jasowang@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=mst@redhat.com \
    --cc=nicolas.dufresne@collabora.com \
    --cc=virtualization@lists.linux.dev \
    --cc=xuanzhuo@linux.alibaba.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

Powered by JetHome