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

[Xen-devel] Re: dom0 bootstrap for xenstore



On Thu, 2005-06-16 at 14:55 +0100, Keir Fraser wrote:
> On 16 Jun 2005, at 09:11, Rusty Russell wrote:
> 
> > So here's my patch against latest bk, including test program but we 
> > have
> > an issue.  On unmap, I hit the BUG_ON() on mm/rmap.c:482.  Is this some
> > issue with using xc_map_foreign_range() on non-foreign pages?
> 
> Ah, it's not working because xc_map_foreign_range does not raise 
> refcnts on the page being mapped.

OK, fixed, please apply the below patch against current bk.

Mike, this means backing out your changes to use domain_info to
communicate this.  I didn't try to extricate that...

Thanks,
Rusty.

diff -urpN --exclude dist --exclude html --exclude ps --exclude '*-xen0' 
--exclude '*-xenU' --exclude 'pristine-*' --exclude TAGS --exclude '*.o' 
--exclude asm-offsets.h --exclude asm-offsets.s --exclude .chkbuild --exclude 
'*~' --exclude '.*.d' --exclude classlist.h --exclude devlist.h --exclude asm 
--exclude banner.h --exclude 'ref-*' --exclude .makedep --exclude config-host.h 
--exclude config-host.mak --exclude keysym_adapter_sdl.h --exclude config.h 
--exclude config.mak --exclude pygrub --exclude bzimage_header.c --exclude 
build --exclude compile.h --minimal 
xen/linux-2.6.11-xen-sparse/drivers/xen/privcmd/privcmd.c 
xen-dom0-store/linux-2.6.11-xen-sparse/drivers/xen/privcmd/privcmd.c
--- xen/linux-2.6.11-xen-sparse/drivers/xen/privcmd/privcmd.c   2005-06-16 
18:03:10.000000000 +1000
+++ xen-dom0-store/linux-2.6.11-xen-sparse/drivers/xen/privcmd/privcmd.c        
2005-06-17 17:11:06.000000000 +1000
@@ -196,6 +196,36 @@ static int privcmd_ioctl(struct inode *i
     }
     break;
 
+    case IOCTL_PRIVCMD_INITDOMAIN_STORE:
+    {
+        extern int do_xenbus_probe(void*);
+
+        if (xen_start_info.store_evtchn != 0) {
+           ret = -EINVAL;
+           break;
+       }
+
+       /* Allocate page. */
+       xen_start_info.store_page = get_zeroed_page(GFP_KERNEL);
+       if (!xen_start_info.store_page) {
+           ret = -ENOMEM;
+           break;
+       }
+
+       /* We don't refcnt properly, so set reserved on page (this
+        * allocation is permanent). */
+       SetPageReserved(virt_to_page(xen_start_info.store_page));
+
+       /* Initial connect. Setup channel and page. */
+       xen_start_info.store_evtchn = data;
+       ret = pfn_to_mfn(virt_to_phys((void *)xen_start_info.store_page)
+                        >> PAGE_SHIFT);
+
+       /* We'll return then this will wait for daemon to answer */
+       //kthread_run(do_xenbus_probe, NULL, "xenbus_probe");
+    }
+    break;
+
     default:
         ret = -EINVAL;
         break;
diff -urpN --exclude dist --exclude html --exclude ps --exclude '*-xen0' 
--exclude '*-xenU' --exclude 'pristine-*' --exclude TAGS --exclude '*.o' 
--exclude asm-offsets.h --exclude asm-offsets.s --exclude .chkbuild --exclude 
'*~' --exclude '.*.d' --exclude classlist.h --exclude devlist.h --exclude asm 
--exclude banner.h --exclude 'ref-*' --exclude .makedep --exclude config-host.h 
--exclude config-host.mak --exclude keysym_adapter_sdl.h --exclude config.h 
--exclude config.mak --exclude pygrub --exclude bzimage_header.c --exclude 
build --exclude compile.h --minimal 
xen/linux-2.6.11-xen-sparse/include/asm-xen/linux-public/privcmd.h 
xen-dom0-store/linux-2.6.11-xen-sparse/include/asm-xen/linux-public/privcmd.h
--- xen/linux-2.6.11-xen-sparse/include/asm-xen/linux-public/privcmd.h  
2005-06-16 18:03:13.000000000 +1000
+++ 
xen-dom0-store/linux-2.6.11-xen-sparse/include/asm-xen/linux-public/privcmd.h   
    2005-06-16 13:47:48.000000000 +1000
@@ -84,5 +84,7 @@ typedef struct privcmd_blkmsg
     _IOC(_IOC_NONE, 'P', 3, sizeof(privcmd_mmapbatch_t))
 #define IOCTL_PRIVCMD_GET_MACH2PHYS_START_MFN \
     _IOC(_IOC_READ, 'P', 4, sizeof(unsigned long))
+#define IOCTL_PRIVCMD_INITDOMAIN_STORE \
+    _IOC(_IOC_READ, 'P', 5, 0)
 
 #endif /* __PRIVCMD_H__ */

-- 
A bad analogy is like a leaky screwdriver -- Richard Braakman


_______________________________________________
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®.