From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Novotny Subject: Re: [PATCH] qemu-xen-3.4-testing: Fix read-only image file handling Date: Mon, 07 Jun 2010 15:25:48 +0200 Message-ID: <4C0CF35C.2030909@redhat.com> References: <4C07B678.3020304@redhat.com> <4C07B853.3000307@redhat.com> <4C08C96F.2080400@redhat.com> <20100604104250.GL17817@reaktio.net> <4C0CD631.4030006@redhat.com> <20100607114538.GC17817@reaktio.net> <4C0CEFC0.5040506@redhat.com> <4C0CF0C0.8070607@redhat.com> <20100607131936.GF17817@reaktio.net> <4C0CF24D.3060507@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <4C0CF24D.3060507@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: =?ISO-8859-1?Q?Pasi_K=E4rkk=E4inen?= Cc: xen-devel@lists.xensource.com, Keir Fraser List-Id: xen-devel@lists.xenproject.org On 06/07/2010 03:21 PM, Michal Novotny wrote: > On 06/07/2010 03:19 PM, Pasi K=E4rkk=E4inen wrote: >> On Mon, Jun 07, 2010 at 03:14:40PM +0200, Michal Novotny wrote: >>> On 06/07/2010 03:10 PM, Michal Novotny wrote: >>>> On 06/07/2010 01:45 PM, Pasi K=E4rkk=E4inen wrote: >>>>> On Mon, Jun 07, 2010 at 01:21:21PM +0200, Michal Novotny wrote: >>>>>> Well, I'm still having some tools issues, mainly: >>>>>> >>>>>> Error: (111, 'Connection refused') >>>>>> >>>>>> Any guess what may be going wrong? Booted grub entry: >>>>>> >>>>>> title Red Hat Enterprise Linux Server (2.6.31.13-xen HV, nolog) >>>>>> root (hd1,6) >>>>>> kernel /xen-4.1-unstable.gz >>>>>> module /vmlinuz-2.6.31.13 ro root=3DLABEL=3D/rhel2 rhgb = quiet >>>>>> selinux=3D0 >>>>>> module /initrd-2.6.31.13.img >>>>>> >>>>>> Mount is having `xenfs on /proc/xen type xenfs (rw)`. Any guess >>>>>> what may >>>>>> be going wrong? >>>>>> >>>>> Do you have xen-evtchn driver loaded? >>>>> >>>>> >>>>> -- Pasi >>>>> >>>> Well, no, and doesn't seem to be installed/probed: >>>> >>>> # modprobe xen-evtchn >>>> # lsmod | grep xen-evtchn >>>> # >>>> >>>> So there's the problem :( >>>> >>>> Michal >>> Oh, I'm taking this back since I found out the module is not xen-evtc= hn >>> but xen_evtchn. So yeah, I'm having it loaded in the memory now. >>> However, when I do `service xend restart` the same error is here: >>> >>> [2010-06-07 17:14:09 5635] INFO (SrvDaemon:227) Xend stopped due to >>> signal 15. >>> [2010-06-07 17:14:09 6295] INFO (SrvDaemon:332) Xend Daemon started >>> [2010-06-07 17:14:09 6295] INFO (SrvDaemon:336) Xend changeset: Thu M= ay >>> 20 17:22:15 2010 +0100 21442:a7fcf2e35d32. >>> [2010-06-07 17:14:09 6295] DEBUG (tcp:96) Listening on :8002 >>> [2010-06-07 17:14:09 6295] INFO (XendNetwork:114) Not recreating=20 >>> missing >>> unmanaged network eth0 >>> [2010-06-07 17:14:09 6295] INFO (XendNetwork:114) Not recreating=20 >>> missing >>> unmanaged network eth2 >>> [2010-06-07 17:14:09 6295] INFO (XendNetwork:114) Not recreating=20 >>> missing >>> unmanaged network br0 >>> [2010-06-07 17:14:09 6295] INFO (XendNetwork:114) Not recreating=20 >>> missing >>> unmanaged network xenbr0 >>> [2010-06-07 17:14:10 6295] DEBUG (XendCPUPool:747)=20 >>> recreate_active_pools >>> [2010-06-07 17:14:10 6295] ERROR (SrvDaemon:349) Exception starting=20 >>> xend >>> ((111, 'Connection refused')) >>> Traceback (most recent call last): >>> File >>> "/usr/lib64/python2.4/site-packages/xen/xend/server/SrvDaemon.py", li= ne >>> 341, in run >>> servers =3D SrvServer.create() >>> File >>> "/usr/lib64/python2.4/site-packages/xen/xend/server/SrvServer.py", li= ne >>> 258, in create >>> root.putChild('xend', SrvRoot()) >>> File=20 >>> "/usr/lib64/python2.4/site-packages/xen/xend/server/SrvRoot.py", >>> line 40, in __init__ >>> self.get(name) >>> File "/usr/lib64/python2.4/site-packages/xen/web/SrvDir.py", line=20 >>> 84, >>> in get >>> val =3D val.getobj() >>> File "/usr/lib64/python2.4/site-packages/xen/web/SrvDir.py", line=20 >>> 52, >>> in getobj >>> self.obj =3D klassobj() >>> File=20 >>> "/usr/lib64/python2.4/site-packages/xen/xend/server/SrvNode.py", >>> line 30, in __init__ >>> self.xn =3D XendNode.instance() >>> File "/usr/lib64/python2.4/site-packages/xen/xend/XendNode.py", li= ne >>> 1176, in instance >>> inst =3D XendNode() >>> File "/usr/lib64/python2.4/site-packages/xen/xend/XendNode.py", li= ne >>> 163, in __init__ >>> self._init_cpu_pools() >>> File "/usr/lib64/python2.4/site-packages/xen/xend/XendNode.py", li= ne >>> 377, in _init_cpu_pools >>> XendCPUPool.recreate_active_pools() >>> File "/usr/lib64/python2.4/site-packages/xen/xend/XendCPUPool.py", >>> line 754, in recreate_active_pools >>> uuid =3D xstransact.Read(path, 'uuid') >>> File >>> "/usr/lib64/python2.4/site-packages/xen/xend/xenstore/xstransact.py", >>> line 307, in Read >>> return complete(path, lambda t: t.read(*args)) >>> File >>> "/usr/lib64/python2.4/site-packages/xen/xend/xenstore/xstransact.py", >>> line 361, in complete >>> t =3D xstransact(path) >>> File >>> "/usr/lib64/python2.4/site-packages/xen/xend/xenstore/xstransact.py", >>> line 29, in __init__ >>> self.transaction =3D xshandle().transaction_start() >>> File=20 >>> "/usr/lib64/python2.4/site-packages/xen/xend/xenstore/xsutil.py", >>> line 18, in xshandle >>> xs_handle =3D xen.lowlevel.xs.xs() >>> Error: (111, 'Connection refused') >>> >>> Any ideas? >>> >> Is xenstore running? >> >> Are there files in /proc/xen ? >> > > Yes to both questions. Everything seems to be OK. Also, there's option=20 > to turn on the debugging of xenstore, right? Do you think it could=20 > help? I'm going to try it now. > > Michal Well, I don't know what was wrong but when I turned on the debugging it=20 was finally working fine to run xen daemon and also when I killed=20 xenstore and turned off the debugging. `xm list` was working fine but I=20 don't know why so it's a kind of magic to me. Nevertheless, it appears=20 to be working fine by now. Thanks for your help! Michal >> -- Pasi >> >>> Michal >>> >>>>>> Thanks, >>>>>> Michal >>>>>> >>>>>> On 06/04/2010 12:42 PM, Pasi K=E4rkk=E4inen wrote: >>>>>>> On Fri, Jun 04, 2010 at 11:37:51AM +0200, Michal Novotny wrote: >>>>>>> >>>>>>>> Oh, one more thing I've discovered now. Since the codebase for >>>>>>>> qemu-xen-unstable is looking the same like for >>>>>>>> qemu-xen-3.4-testing and >>>>>>>> the patch is applicable without any modifications it could be=20 >>>>>>>> working >>>>>>>> for xen-4.1 unstable as well, unfortunately I was not able to >>>>>>>> boot PVOPS >>>>>>>> kernel since it always ends up in kernel panic, maybe the missin= g >>>>>>>> drivers or something like that. >>>>>>>> >>>>>>>> >>>>>>> What kernel version? Did you use xen/stable-2.6.32.x branch from >>>>>>> xen.git? >>>>>>> >>>>>>> See my example .config files from: >>>>>>> http://wiki.xensource.com/xenwiki/XenParavirtOps in the >>>>>>> "troubleshooting" section. >>>>>>> >>>>>>> Works on F12/F13 dom0's. >>>>>>> >>>>>>> For el5 dom0 you might need these: >>>>>>> http://wiki.xensource.com/xenwiki/2.6.18-to-2.6.31-and-higher >>>>>>> >>>>>>> aka >>>>>>> CONFIG_SYSFS_DEPRECATED=3Dy >>>>>>> CONFIG_SYSFS_DEPRECATED_V2=3Dy >>>>>>> >>>>>>> Also atm I think you need CONFIG_XEN_XENBUS_FRONTEND=3Dy in the=20 >>>>>>> .config >>>>>>> because of the recently added pv-on-hvm drivers (you'll get build >>>>>>> failure without that option), >>>>>>> so you need XEN_PCIDEV_FRONTEND XEN_BLKDEV_FRONTEND or >>>>>>> XEN_NETDEV_FRONTEND or XEN_FBDEV_FRONTEND needs to be =3Dy. >>>>>>> >>>>>>> -- Pasi >>>>>>> >>>>>>> >>>>>>> >>>>>>>> On 06/03/2010 04:12 PM, Michal Novotny wrote: >>>>>>>> >>>>>>>>> Oh, just one more thing that should be mentioned: >>>>>>>>> >>>>>>>>> When you want to mount an image that is set as read-only in >>>>>>>>> the domain >>>>>>>>> configuration file but you omit to set mode to read-only it=20 >>>>>>>>> results >>>>>>>>> into I/O errors when processing the requests. Remounting as >>>>>>>>> read-only >>>>>>>>> or unmounting and remounting using the `mount /dev/* >>>>>>>>> /path/to/mount -o >>>>>>>>> ro` shall do the mounting the correct way, i.e. with no I/O >>>>>>>>> errors, so >>>>>>>>> make sure you mount those disks as read-only otherwise you can = be >>>>>>>>> getting errors like: >>>>>>>>> >>>>>>>>> end_request: I/O error, dev hdb, sector 52 >>>>>>>>> >>>>>>>>> Buffer I/O error on device hdb1, logical block 1 >>>>>>>>> >>>>>>>>> lost page write due to I/O error on hdb1 >>>>>>>>> >>>>>>>>> >>>>>>>>> and for IDE devices you'll be getting several additional=20 >>>>>>>>> DeviceFault >>>>>>>>> errors since mounting the device read-write (default setting)=20 >>>>>>>>> writes >>>>>>>>> some data onto a disk at the mount-time. >>>>>>>>> >>>>>>>>> Michal >>>>>>>>> >>>>>>>>> On 06/03/2010 04:04 PM, Michal Novotny wrote: >>>>>>>>> >>>>>>>>>> [Well, I did send an e-mail to the list using git but it's=20 >>>>>>>>>> not here >>>>>>>>>> so I'm forwarding the e-mail to the list for sure:] >>>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> this is the patch for qemu-xen-3.4-testing to fix the read-onl= y >>>>>>>>>> image file handling since the image file was always treated as >>>>>>>>>> read-write which means that all the HVM guests were able to >>>>>>>>>> write to all the disk images available in domain configuration >>>>>>>>>> file no matter what the mode of the image was defined. This >>>>>>>>>> patch fixes this functionality to honor the O_RDONLY in the >>>>>>>>>> BDRV_O_ACCESS flag in block.c and also fixes the IDE and SCSI >>>>>>>>>> interfaces that uses it. >>>>>>>>>> >>>>>>>>>> It's been tested on RHEL-5 with xen-3.4-testing version of >>>>>>>>>> upstream xen with xen-3.4-testing qemu implementation. >>>>>>>>>> >>>>>>>>>> For SCSI devices the DATA PROTECT request sense has been added >>>>>>>>>> as found at: >>>>>>>>>> http://en.wikipedia.org/wiki/SCSI_Request_Sense_Command >>>>>>>>>> >>>>>>>>>> file no matter what the mode of the image was defined. This >>>>>>>>>> patch fixes this functionality to honor the O_RDONLY in the >>>>>>>>>> BDRV_O_ACCESS flag in block.c and also fixes the IDE and SCSI >>>>>>>>>> interfaces that uses it. >>>>>>>>>> >>>>>>>>>> It's been tested on RHEL-5 with xen-3.4-testing version of >>>>>>>>>> Michal >>>>>>>>>> >>>>>>>>>> Signed-off-by: Michal Novotny >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> Xen-devel mailing list >>>>>>>>>> Xen-devel@lists.xensource.com >>>>>>>>>> http://lists.xensource.com/xen-devel >>>>>>>>>> >>>>>>>> --=20 >>>>>>>> Michal Novotny, RHCE >>>>>>>> Virtualization Team (xen userspace), Red Hat >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Xen-devel mailing list >>>>>>>> Xen-devel@lists.xensource.com >>>>>>>> http://lists.xensource.com/xen-devel >>>>>>>> >>>>>> --=20 >>>>>> Michal Novotny, RHCE >>>>>> Virtualization Team (xen userspace), Red Hat >>>>>> >>>>> _______________________________________________ >>>>> Xen-devel mailing list >>>>> Xen-devel@lists.xensource.com >>>>> http://lists.xensource.com/xen-devel >>>> >>> >>> --=20 >>> Michal Novotny, RHCE >>> Virtualization Team (xen userspace), Red Hat >>> >> _______________________________________________ >> Xen-devel mailing list >> Xen-devel@lists.xensource.com >> http://lists.xensource.com/xen-devel > > --=20 Michal Novotny, RHCE Virtualization Team (xen userspace), Red Hat