Functional testing of mainline vchiq driver

Stefan Wahren stefan.wahren at i2se.com
Sat Nov 12 10:06:29 PST 2016


Hi Michael,

> Michael Zoran <mzoran at crowfest.net> hat am 12. November 2016 um 18:43
> geschrieben:
> 
> 
> On Sat, 2016-11-12 at 17:27 +0100, Stefan Wahren wrote:
> > > Phil Elwell <phil at raspberrypi.org> hat am 24. Oktober 2016 um 18:16
> > > geschrieben:
> > > 
> > > 
> > > On 24/10/2016 17:09, Stefan Wahren wrote:
> > > > Hi,
> > > > 
> > > > i want to submit some patches for the vchiq in staging, but i
> > > > don't know
> > > > how to test the specific function of the vchiq driver in mainline
> > > > (i
> > > > don't want to backport to the downstream kernel).
> > > > 
> > > > I've seen some userspace tools like vchiq_test. Which parameter
> > > > settings
> > > > are recommend?
> > > 
> > > I would recommend "vchiq_test -f" (functional) to check that
> > > nothing
> > > fundamental has broken in the protocol, and "vchiq_test -p" (ping)
> > > to
> > > perform a large number of transfers, including small messages and
> > > bulk data.
> > > 
> > > Phil Elwell, Raspberry Pi
> > > 
> > 
> > Since Michael has been working on the ioctls i want to provide a
> > small coverage
> > table:
> > 
> >                                                 vchiq_test  vchiq_tes
> > t
> >  mmal_vc_diag
> > ioctl                function                   -f          -
> > p          stats
> > -------------------------------------------------------------------
> > -----------------
> > CONNECT              vchiq_connect              X           X        
> >    X
> > SHUTDOWN             vchiq_shutdown             X                    
> >    X
> > CREATE_SERVICE       vchiq_add_service          X           X        
> >    X
> > REMOVE_SERVICE       vchiq_remove_service       X                
> > QUEUE_MESSAGE        vchiq_queue_message        X           X        
> >    X
> > QUEUE_BULK_TRANSMIT  vchiq_queue_bulk_transmit  X           X
> > QUEUE_BULK_RECEIVE   vchiq_queue_bulk_receive   X
> > AWAIT_COMPLETION     vchiq_shutdown             X           X        
> >    X
> > DEQUEUE_MESSAGE      vchi_msg_peek                                   
> >    X
> > GET_CLIENT_ID        vchiq_get_client_id
> > GET_CONFIG           vchiq_get_config           X           X        
> >    X
> > CLOSE_SERVICE        vchiq_close_service                    X        
> >    X
> > USE_SERVICE          vchiq_use_service                      X        
> >    X
> > RELEASE_SERVICE      vchiq_release_service                  X        
> >    X
> > SET_SERVICE_OPTION   vchiq_set_service_option   X           X
> > DUMP_PHYS_MEM        vchiq_dump_phys_mem
> > LIB_VERSION          vchiq_initialise_fd        X           X        
> >    X
> > CLOSE_DELIVERED      vchiq_shutdown             X           X        
> >    X
> 
> Cool, it looks like the only two not covered are GET_CLIENT_ID and
> DUMP_PHYS_MEM.

GET_CLIENT_ID is used by khronos. I don't have no idea which tool uses
DUMP_PHYS_MEM. Under security considerations i suggest to make this ioctl a stub
or at least its function configurable ( CONFIG_VCHIQ_DUMP_PHYS_MEM ).

> 
> Did you get this by looking at the source of the test tools or did you
> add logging to the driver?

I added a conditional logging because the trace for the ioctls generated too
much output.

> Any chance this was with my ioctl patch
> applied?
> 

I made this with your patch applied.

Stefan



More information about the linux-rpi-kernel mailing list