[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] RFC: Xen cdrom haldaemon



On Wed, Sep 05, 2007 at 10:43:30AM -0600, Pat Campbell wrote:
> The basic flow of the patch is:
> 
>  Kernel:
>      blkback driver: 
>        if block device is a physical cdrom then
>           Add media_present=1 into xenstore  backend/vbd 
>              for this device
>           Place a xenstore watch on media_present
>        
>        watch_handler
>           if watch token is media_present
>               read value
>               if 0 then close block device fd
>               if 1 then re-open block device fd
> 
>        Any access with fd closed results in EACCESS error
> 
>     qemu
>        if block device is a cdrom
>           Place a xenstore watch on media_present 
>        watch_handler
>           if watch token is media_present
>               read value
>               if 0 then close block device
>               if 1 then re-open block device and set media_changed
> 
>        Any access with fd closed results in EACCESS error
>  
>     xend
>        Starts XEN HalDaemon process
>     
>     XEN HalDaemon   
>       Registers event callback for HALD events
>        callback handler
>           gets device major/minor numbers
>           for each vbd in xenstore
>              if matching major and minor
>                 if add_event ( cdrom door closed with media )
>                    xenstore write 1 to vbd/media_present
>                 else         ( cddrom door open )
>                    xenstore write 0 to vbd/media_present
> 
>       I am just learning python, could use a python guy to enhance and 
>       generalize.

To be honest this sounds like rather overkill. Why on earth is blkback
opening the device in the first place? blkback/blkfront don't have any
kind of support for CDROM capabilities, so paravirt drivers for a disk
device Xend marked as a cdrom don't make sense. If we stop blkback from
processing any devices with the ':cdrom' annotation, then only QEMU will
have the device open & the problem should go away if I'm understanding
your description properly.

Dan.
-- 
|=- Red Hat, Engineering, Emerging Technologies, Boston.  +1 978 392 2496 -=|
|=-           Perl modules: http://search.cpan.org/~danberr/              -=|
|=-               Projects: http://freshmeat.net/~danielpb/               -=|
|=-  GnuPG: 7D3B9505   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505  -=| 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.