All of lore.kernel.org
 help / color / mirror / Atom feed
* How can I use grant table in domainU?
@ 2011-04-04 10:15 ruozeng.w
  2011-04-04 14:25 ` Konrad Rzeszutek Wilk
       [not found] ` <201104051205497648564@gmail.com>
  0 siblings, 2 replies; 8+ messages in thread
From: ruozeng.w @ 2011-04-04 10:15 UTC (permalink / raw)
  To: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 620 bytes --]

Can applications runs in domainU use grant table?

I found a way in the document(/docs/misc/grant-tables.txt), using function gnttab_grant_foreign_access . But, this fucntion is defined in domainU kernel, for example, in my installation, it's in /linux-2.6.18-xen.hg/include/xen/gnttab.h. 

Then how can I call this function in my own application? 
If I wants to write a simple program(program1) runs in domainA, to map a frame to domainB, in which another simple program(program2) is running, then program2 can read the information program1 sent to domainB, what should I do?

thanks.

2011-04-04 



Wishes
Ruozeng W 

[-- Attachment #1.2: Type: text/html, Size: 1629 bytes --]

[-- Attachment #2: Type: text/plain, Size: 138 bytes --]

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: How can I use grant table in domainU?
  2011-04-04 10:15 How can I use grant table in domainU? ruozeng.w
@ 2011-04-04 14:25 ` Konrad Rzeszutek Wilk
       [not found] ` <201104051205497648564@gmail.com>
  1 sibling, 0 replies; 8+ messages in thread
From: Konrad Rzeszutek Wilk @ 2011-04-04 14:25 UTC (permalink / raw)
  To: ruozeng.w; +Cc: xen-devel

On Mon, Apr 04, 2011 at 06:15:22PM +0800, ruozeng.w wrote:
> Can applications runs in domainU use grant table?
> 
> I found a way in the document(/docs/misc/grant-tables.txt), using function gnttab_grant_foreign_access . But, this fucntion is defined in domainU kernel, for example, in my installation, it's in /linux-2.6.18-xen.hg/include/xen/gnttab.h. 
> 
> Then how can I call this function in my own application? 
> If I wants to write a simple program(program1) runs in domainA, to map a frame to domainB, in which another simple program(program2) is running, then program2 can read the information program1 sent to domainB, what should I do?

Get 2.6.39 and use /dev/gntdev, /dev/gntalloc to do so. Attached is a test program
written by Daniel De Graaf.


#include <errno.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <stdint.h>
#include <sys/ioctl.h>
#include <sys/mman.h>

struct ioctl_gntdev_grant_ref {
	/* The domain ID of the grant to be mapped. */
	uint32_t domid;
	/* The grant reference of the grant to be mapped. */
	uint32_t ref;
};

/*
 * Allocates a new page and creates a new grant reference.
 */
#define IOCTL_GNTALLOC_ALLOC_GREF \
_IOC(_IOC_NONE, 'G', 5, sizeof(struct ioctl_gntalloc_alloc_gref))
struct ioctl_gntalloc_alloc_gref {
	/* IN parameters */
	/* The ID of the domain to be given access to the grants. */
	uint16_t domid;
	/* Flags for this mapping */
	uint16_t flags;
	/* Number of pages to map */
	uint32_t count;
	/* OUT parameters */
	/* The offset to be used on a subsequent call to mmap(). */
	uint64_t index;
	/* The grant references of the newly created grant, one per page */
	/* Variable size, depending on count */
	uint32_t gref_ids[1];
};

#define GNTALLOC_FLAG_WRITABLE 1

/*
 * Deallocates the grant reference, allowing the associated page to be freed if
 * no other domains are using it.
 */
#define IOCTL_GNTALLOC_DEALLOC_GREF \
_IOC(_IOC_NONE, 'G', 6, sizeof(struct ioctl_gntalloc_dealloc_gref))
struct ioctl_gntalloc_dealloc_gref {
	/* IN parameters */
	/* The offset returned in the map operation */
	uint64_t index;
	/* Number of references to unmap */
	uint32_t count;
};

#define IOCTL_GNTDEV_MAP_GRANT_REF \
_IOC(_IOC_NONE, 'G', 0, sizeof(struct ioctl_gntdev_map_grant_ref))
struct ioctl_gntdev_map_grant_ref {
    /* IN parameters */
    /* The number of grants to be mapped. */
    uint32_t count;
    uint32_t pad;
    /* OUT parameters */
    /* The offset to be used on a subsequent call to mmap(). */
    uint64_t index;
    /* Variable IN parameter. */
    /* Array of grant references, of size @count. */
    struct ioctl_gntdev_grant_ref refs[1];
};
#define GNTDEV_MAP_WRITABLE 0x1

#define IOCTL_GNTDEV_UNMAP_GRANT_REF \
_IOC(_IOC_NONE, 'G', 1, sizeof(struct ioctl_gntdev_unmap_grant_ref))       
struct ioctl_gntdev_unmap_grant_ref {
    /* IN parameters */
    /* The offset was returned by the corresponding map operation. */
    uint64_t index;
    /* The number of pages to be unmapped. */
    uint32_t count;
    uint32_t pad;
};

/*
 * Sets up an unmap notification within the page, so that the other side can do
 * cleanup if this side crashes. Required to implement cross-domain robust
 * mutexes or close notification on communication channels.
 *
 * Each mapped page only supports one notification; multiple calls referring to
 * the same page overwrite the previous notification. You must clear the
 * notification prior to the IOCTL_GNTALLOC_DEALLOC_GREF if you do not want it
 * to occur.
 */
#define IOCTL_GNTDEV_SET_UNMAP_NOTIFY \
_IOC(_IOC_NONE, 'G', 7, sizeof(struct ioctl_gntdev_unmap_notify))
struct ioctl_gntdev_unmap_notify {
	/* IN parameters */
	/* Index of a byte in the page */
	uint64_t index;
	/* Action(s) to take on unmap */
	uint32_t action;
	/* Event channel to notify */
	uint32_t event_channel_port;
};

/* Clear (set to zero) the byte specified by index */
#define UNMAP_NOTIFY_CLEAR_BYTE 0x1
/* Send an interrupt on the indicated event channel */
#define UNMAP_NOTIFY_SEND_EVENT 0x2

/*
 * Sets up an unmap notification within the page, so that the other side can do
 * cleanup if this side crashes. Required to implement cross-domain robust
 * mutexes or close notification on communication channels.
 *
 * Each mapped page only supports one notification; multiple calls referring to
 * the same page overwrite the previous notification. You must clear the
 * notification prior to the IOCTL_GNTALLOC_DEALLOC_GREF if you do not want it
 * to occur.
 */
#define IOCTL_GNTALLOC_SET_UNMAP_NOTIFY \
_IOC(_IOC_NONE, 'G', 7, sizeof(struct ioctl_gntalloc_unmap_notify))
struct ioctl_gntalloc_unmap_notify {
	/* IN parameters */
	/* Index of a byte in the page */
	uint64_t index;
	/* Action(s) to take on unmap */
	uint32_t action;
	/* Event channel to notify */
	uint32_t event_channel_port;
};

/* Clear (set to zero) the byte specified by index */
#define UNMAP_NOTIFY_CLEAR_BYTE 0x1
/* Send an interrupt on the indicated event channel */
#define UNMAP_NOTIFY_SEND_EVENT 0x2

#ifndef offsetof
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
#endif


int a_fd;
int d_fd;

struct shr_page {
	uint64_t id;
	char buffer[64];
	uint8_t notifies[8];
};

struct data {
	struct shr_page* mem;
	int handle;
} items[128];

void sa(int id)
{
	struct ioctl_gntalloc_alloc_gref arg = {
		.domid = id,
		.flags = GNTALLOC_FLAG_WRITABLE,
		.count = 1
	};
	int rv = ioctl(a_fd, IOCTL_GNTALLOC_ALLOC_GREF, &arg);
	if (rv) {
		printf("src-add error: %s (rv=%d)\n", strerror(errno), rv);
		return;
	}
	int i=0;
	while (items[i].mem) i++;
	items[i].mem = mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, a_fd, arg.index);
	if (items[i].mem == MAP_FAILED) {
		items[i].mem = 0;
		printf("mmap failed: SHOULD NOT HAPPEN\n");
		return;
	}
	items[i].handle = arg.index;
	printf("Created shared page with domain %d, grant #%d. Mapped locally at %d=%p\n",
		id, arg.gref_ids[0], arg.index, items[i].mem);

	items[i].mem->id = rand() | ((long)(getpid()) << 32);
	items[i].mem->notifies[0] = 1;
	struct ioctl_gntalloc_unmap_notify uarg = {
		.index = arg.index + offsetof(struct shr_page, notifies[0]),
		.action = UNMAP_NOTIFY_CLEAR_BYTE
	};
	rv = ioctl(a_fd, IOCTL_GNTALLOC_SET_UNMAP_NOTIFY, &uarg);
	if (rv)
		printf("gntalloc unmap notify error: %s (rv=%d)\n", strerror(errno), rv);
}

void sd(int ref) {
	struct ioctl_gntalloc_dealloc_gref arg = {
		.index = ref,
		.count = 1
	};

	int rv = ioctl(a_fd, IOCTL_GNTALLOC_DEALLOC_GREF, &arg);
	if (rv)
		printf("src-del error: %s (rv=%d)\n", strerror(errno), rv);
	else
		printf("Stopped offering grant at offset %d\n", ref);
}

void mm(int domid, int refid) {
	struct ioctl_gntdev_map_grant_ref arg = {
		.count = 1,
		.refs[0].domid = domid,
		.refs[0].ref = refid,
	};
	int rv = ioctl(d_fd, IOCTL_GNTDEV_MAP_GRANT_REF, &arg);
	if (rv) {
		printf("Could not map grant %d.%d: %s (rv=%d)\n", domid, refid, strerror(errno), rv);
		return;
	}
	int i=0,j=1;
	while (items[i].mem) i++;
	items[i].mem = mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, d_fd, arg.index);
	if (items[i].mem == MAP_FAILED) {
		items[i].mem = 0;
		printf("Could not map grant %d.%d: %s (map failed)\n", domid, refid, strerror(errno), rv);
		return;
	}
	items[i].handle = arg.index;
	printf("Mapped grant %d.%d as %d=%p\n", domid, refid, arg.index, items[i].mem);

	while (items[i].mem->notifies[j]) j++;
	items[i].mem->notifies[j] = 1;
	struct ioctl_gntalloc_unmap_notify uarg = {
		.index = arg.index + offsetof(struct shr_page, notifies[j]),
		.action = UNMAP_NOTIFY_CLEAR_BYTE
	};
	rv = ioctl(d_fd, IOCTL_GNTDEV_SET_UNMAP_NOTIFY, &uarg);
	if (rv)
		printf("gntdev unmap notify error: %s (rv=%d)\n", strerror(errno), rv);
}

void gu(int index) {
	struct ioctl_gntdev_unmap_grant_ref arg = {
		.index = index,
		.count = 1,
	};
	int rv = ioctl(d_fd, IOCTL_GNTDEV_UNMAP_GRANT_REF, &arg);
	if (rv)
		printf("gu error: %s (rv=%d)\n", strerror(errno), rv);
	else
		printf("Unhooked mapped grant at offset %d\n", index);
}

void mu(void* addr) {
	int i = 0;
	munmap(addr, 4096);
	while (i < 128)
	{
		if (items[i].mem == addr)
			items[i].mem = 0;
		i++;
	}
	printf("Unmapped page at %p\n", addr);
}

void show(char* word) {
	int i;
	int wlen = strlen(word);
	for(i=0; i < 128; i++) {
		if (!items[i].mem)
			continue;
		memmove(items[i].mem->buffer + wlen, items[i].mem->buffer, 63 - wlen);
		memcpy(items[i].mem->buffer, word, wlen);
		printf("%02d(%ld,%d): id %16lx n=%d%d%d%d%d%d%d%d b=%s\n",
			i, items[i].mem, items[i].handle, items[i].mem->id,
			items[i].mem->notifies[0], items[i].mem->notifies[1], items[i].mem->notifies[2], items[i].mem->notifies[3], 
			items[i].mem->notifies[4], items[i].mem->notifies[5], items[i].mem->notifies[6], items[i].mem->notifies[7], 
			items[i].mem->buffer);
	}
	printf("END\n");
}

int main(int argc, char** argv) {
	a_fd = open("/dev/xen/gntalloc", O_RDWR);
	d_fd = open("/dev/xen/gntdev", O_RDWR);
	printf(
		"add <domid>           return gntref, address\n"
		"map <domid> <ref>     return index, address\n"
		"adel <gntref>         delete <add> internal\n"
		"ddel <index>          delete <map> internal\n"
		"unmap <address>       unmap memory\n"
		"show                  show all pages\n"
		"<word>                append word to all mapped pages, show\n"
		" PID %x\n", getpid()
	);
	while (1) {
		char line[80];
		char word[80];
		long a, b;
		printf("\n> ");
		fflush(stdout);
		fgets(line, 80, stdin);
		sscanf(line, "%s %ld %ld", word, &a, &b);
		if (!strcmp(word, "add")) {
			sa(a);
		} else if (!strcmp(word, "map")) {
			mm(a, b);
		} else if (!strcmp(word, "adel")) {
			sd(a);
		} else if (!strcmp(word, "ddel")) {
			gu(a);
		} else if (!strcmp(word, "unmap")) {
			mu((void*)a);
		} else if (!strcmp(word, "show")) {
			show("");
		} else {
			show(word);
		}
	}
}
> 
> thanks.
> 
> 2011-04-04 
> 
> 
> 
> Wishes
> Ruozeng W 

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Re: How can I use grant table in domainU?
       [not found]             ` <BANLkTi=0fEdC8PjsWp_8rmdwybpsex1q+Q@mail.gmail.com>
@ 2011-04-13 17:43               ` Konrad Rzeszutek Wilk
  2011-04-14  2:08                 ` ruozeng wang
  0 siblings, 1 reply; 8+ messages in thread
From: Konrad Rzeszutek Wilk @ 2011-04-13 17:43 UTC (permalink / raw)
  To: ruozeng wang, xen-devel

On Wed, Apr 13, 2011 at 11:52:25PM +0800, ruozeng wang wrote:
> Hi,
> 
> I've tried to install xen-4.1.0 with 2.6.39-rc2 kernel on CentOS 5.5, Debian
> 5.07 and ubuntu 8.04, at last succeeded with  ubuntu.
> But when I tried to start xend, it failed.

Please also CC the mailing list. I did this for you.
> 
> /var/log/xend.log:
> 
> *[2011-04-13 20:35:52 6937] DEBUG (tcp:96) Listening on :8002
> [2011-04-13 20:35:52 6937] ERROR (SrvDaemon:349) Exception starting xend
> ((98, 'Address already in use'))
> Traceback (most recent call last):
>   File "usr/lib/python2.5/site-packages/xen/xend/server/SrvDaemon.py", line
> 339, in run
>     relocate.listenRelocation()
>   File "usr/lib/python2.5/site-packages/xen/xend/server/relocate.py", line
> 159, in listenRelocation
>     hosts_allow = hosts_allow)
>   File "usr/lib/python2.5/site-packages/xen/web/tcp.py", line 38, in
> __init__
>     connection.SocketListener.__init__(self, protocol_class)
>   File "usr/lib/python2.5/site-packages/xen/web/connection.py", line 89, in
> __init__
>     self.sock = self.createSocket()
>   File "usr/lib/python2.5/site-packages/xen/web/tcp.py", line 97, in
> createSocket
>     sock.bind((self.interface, self.port))
>   File "<string>", line 1, in bind
> error: (98, 'Address already in use')

Looks like someobyd is listening already on that port.
> [2011-04-13 20:35:52 6936] INFO (SrvDaemon:220) Xend exited with status 1.*
> 
> Could you tell me what may cause this? Someone might have met this before,
> but I can't find a solution.
> 
>  http://lists.xensource.com/archives/html/xen-users/2006-05/msg00397.html
> 
> netstat -ltnp does show an active connection, listening local address
> 0.0.0.0:8002, but I don't know if it is right or not

Ok, what program is using it?
> 
> 
> thanks
> 
> ruozeng.w
> regards
> 2011-4-43
> 
> 
> 
> 2011/4/6 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> 
> > On Wed, Apr 06, 2011 at 10:57:00PM +0800, ruozeng wang wrote:
> > > Sorry, I'm a little confused……What is this 2.6.39 kernel for? When I
> > build
> > > and install xen, it downloaded a "linux-2.6.18-xen.hg" (using mercurial),
> > > should I update this kernel to 2.6.39? Or update my host OS kernel to
> > > 2.6.39? I found 2.6.39-rc2 kernel at kernel.org, but it's not for xen,
> > it's
> > > a stadard kernel, I think.
> >
> > The standard mainline kernel has Xen components in it. You need to
> > compile it with CONFIG_PVOPS and CONFIG_XEN and you will have a fully
> > working kernel that can boot up either on native, or under the Xen
> > hypervisor.
> >
> >
> > >
> > > So is this my misunderstanding?
> > >
> > > I planed to install xen 4.0.0 on CentOS 5.4 tommorow.
> > > Please tell me some more details. Thank you so much for you patience.
> >
> > Please use Google. Search for 'PVOPS Wiki'.
> >

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Re: How can I use grant table in domainU?
  2011-04-13 17:43               ` Konrad Rzeszutek Wilk
@ 2011-04-14  2:08                 ` ruozeng wang
  2011-04-14 12:22                   ` ruozeng wang
  0 siblings, 1 reply; 8+ messages in thread
From: ruozeng wang @ 2011-04-14  2:08 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk; +Cc: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 3449 bytes --]

Sorry, I forgot to CC, my fault. I'll do it from now on.

Program listening 0.0.0.0:8002 is *python*

Here is the netstat output:

*Proto    Recv-Q    Send-Q    Local Address    Foreign Address
State       PID/Program name
tcp        0               0             0.0.0.0:8002        0.0.0.0:*
LISTEN    6416/python*


2011/4/14 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

> On Wed, Apr 13, 2011 at 11:52:25PM +0800, ruozeng wang wrote:
> > Hi,
> >
> > I've tried to install xen-4.1.0 with 2.6.39-rc2 kernel on CentOS 5.5,
> Debian
> > 5.07 and ubuntu 8.04, at last succeeded with  ubuntu.
> > But when I tried to start xend, it failed.
>
> Please also CC the mailing list. I did this for you.
> >
> > /var/log/xend.log:
> >
> > *[2011-04-13 20:35:52 6937] DEBUG (tcp:96) Listening on :8002
> > [2011-04-13 20:35:52 6937] ERROR (SrvDaemon:349) Exception starting xend
> > ((98, 'Address already in use'))
> > Traceback (most recent call last):
> >   File "usr/lib/python2.5/site-packages/xen/xend/server/SrvDaemon.py",
> line
> > 339, in run
> >     relocate.listenRelocation()
> >   File "usr/lib/python2.5/site-packages/xen/xend/server/relocate.py",
> line
> > 159, in listenRelocation
> >     hosts_allow = hosts_allow)
> >   File "usr/lib/python2.5/site-packages/xen/web/tcp.py", line 38, in
> > __init__
> >     connection.SocketListener.__init__(self, protocol_class)
> >   File "usr/lib/python2.5/site-packages/xen/web/connection.py", line 89,
> in
> > __init__
> >     self.sock = self.createSocket()
> >   File "usr/lib/python2.5/site-packages/xen/web/tcp.py", line 97, in
> > createSocket
> >     sock.bind((self.interface, self.port))
> >   File "<string>", line 1, in bind
> > error: (98, 'Address already in use')
>
> Looks like someobyd is listening already on that port.
> > [2011-04-13 20:35:52 6936] INFO (SrvDaemon:220) Xend exited with status
> 1.*
> >
> > Could you tell me what may cause this? Someone might have met this
> before,
> > but I can't find a solution.
> >
> >
> http://lists.xensource.com/archives/html/xen-users/2006-05/msg00397.html
> >
> > netstat -ltnp does show an active connection, listening local address
> > 0.0.0.0:8002, but I don't know if it is right or not
>
> Ok, what program is using it?
> >
> >
> > thanks
> >
> > ruozeng.w
> > regards
> > 2011-4-43
> >
> >
> >
> > 2011/4/6 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> >
> > > On Wed, Apr 06, 2011 at 10:57:00PM +0800, ruozeng wang wrote:
> > > > Sorry, I'm a little confused……What is this 2.6.39 kernel for? When I
> > > build
> > > > and install xen, it downloaded a "linux-2.6.18-xen.hg" (using
> mercurial),
> > > > should I update this kernel to 2.6.39? Or update my host OS kernel to
> > > > 2.6.39? I found 2.6.39-rc2 kernel at kernel.org, but it's not for
> xen,
> > > it's
> > > > a stadard kernel, I think.
> > >
> > > The standard mainline kernel has Xen components in it. You need to
> > > compile it with CONFIG_PVOPS and CONFIG_XEN and you will have a fully
> > > working kernel that can boot up either on native, or under the Xen
> > > hypervisor.
> > >
> > >
> > > >
> > > > So is this my misunderstanding?
> > > >
> > > > I planed to install xen 4.0.0 on CentOS 5.4 tommorow.
> > > > Please tell me some more details. Thank you so much for you patience.
> > >
> > > Please use Google. Search for 'PVOPS Wiki'.
> > >
>

[-- Attachment #1.2: Type: text/html, Size: 4765 bytes --]

[-- Attachment #2: Type: text/plain, Size: 138 bytes --]

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Re: How can I use grant table in domainU?
  2011-04-14  2:08                 ` ruozeng wang
@ 2011-04-14 12:22                   ` ruozeng wang
  2011-04-14 13:39                     ` Konrad Rzeszutek Wilk
  0 siblings, 1 reply; 8+ messages in thread
From: ruozeng wang @ 2011-04-14 12:22 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk; +Cc: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 6600 bytes --]

This is from /var/log/xen/xend-debug.log:

Xend started at Thu Apr 14 17:39:00 2011.
cat: /sys/bus/scsi/devices/host0/vendor: No such file or directory
cat: /sys/bus/scsi/devices/host0/model: No such file or directory
cat: /sys/bus/scsi/devices/host0/type: No such file or directory
cat: /sys/bus/scsi/devices/host0/rev: No such file or directory
cat: /sys/bus/scsi/devices/host0/scsi_level: No such file or directory
cat: /sys/bus/scsi/devices/host1/vendor: No such file or directory
cat: /sys/bus/scsi/devices/host1/model: No such file or directory
cat: /sys/bus/scsi/devices/host1/type: No such file or directory
cat: /sys/bus/scsi/devices/host1/rev: No such file or directory
cat: /sys/bus/scsi/devices/host1/scsi_level: No such file or directory
cat: /sys/bus/scsi/devices/host2/vendor: No such file or directory
cat: /sys/bus/scsi/devices/host2/model: No such file or directory
cat: /sys/bus/scsi/devices/host2/type: No such file or directory
cat: /sys/bus/scsi/devices/host2/rev: No such file or directory
cat: /sys/bus/scsi/devices/host2/scsi_level: No such file or directory
cat: /sys/bus/scsi/devices/host3/vendor: No such file or directory
cat: /sys/bus/scsi/devices/host3/model: No such file or directory
cat: /sys/bus/scsi/devices/host3/type: No such file or directory
cat: /sys/bus/scsi/devices/host3/rev: No such file or directory
cat: /sys/bus/scsi/devices/host3/scsi_level: No such file or directory
cat: /sys/bus/scsi/devices/host4/vendor: No such file or directory
cat: /sys/bus/scsi/devices/host4/model: No such file or directory
cat: /sys/bus/scsi/devices/host4/type: No such file or directory
cat: /sys/bus/scsi/devices/host4/rev: No such file or directory
cat: /sys/bus/scsi/devices/host4/scsi_level: No such file or directory
cat: /sys/bus/scsi/devices/host5/vendor: No such file or directory
cat: /sys/bus/scsi/devices/host5/model: No such file or directory
cat: /sys/bus/scsi/devices/host5/type: No such file or directory
cat: /sys/bus/scsi/devices/host5/rev: No such file or directory
cat: /sys/bus/scsi/devices/host5/scsi_level: No such file or directory
cat: /sys/bus/scsi/devices/target2:0:0/vendor: No such file or directory
cat: /sys/bus/scsi/devices/target2:0:0/model: No such file or directory
cat: /sys/bus/scsi/devices/target2:0:0/type: No such file or directory
cat: /sys/bus/scsi/devices/target2:0:0/rev: No such file or directory
cat: /sys/bus/scsi/devices/target2:0:0/scsi_level: No such file or directory
cat: /sys/bus/scsi/devices/target3:0:0/vendor: No such file or directory
cat: /sys/bus/scsi/devices/target3:0:0/model: No such file or directory
cat: /sys/bus/scsi/devices/target3:0:0/type: No such file or directory
cat: /sys/bus/scsi/devices/target3:0:0/rev: No such file or directory
cat: /sys/bus/scsi/devices/target3:0:0/scsi_level: No such file or directory

Is there any connections between this and the "address already in use"
problem?

thanks


ruozeng.w
2011-4-14

2011/4/14 ruozeng wang <ruozeng.w@gmail.com>

> Sorry, I forgot to CC, my fault. I'll do it from now on.
>
> Program listening 0.0.0.0:8002 is *python*
>
> Here is the netstat output:
>
> *Proto    Recv-Q    Send-Q    Local Address    Foreign Address
> State       PID/Program name
> tcp        0               0             0.0.0.0:8002        0.0.0.0:*
> LISTEN    6416/python*
>
>
>
> 2011/4/14 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
>
>> On Wed, Apr 13, 2011 at 11:52:25PM +0800, ruozeng wang wrote:
>> > Hi,
>> >
>> > I've tried to install xen-4.1.0 with 2.6.39-rc2 kernel on CentOS 5.5,
>> Debian
>> > 5.07 and ubuntu 8.04, at last succeeded with  ubuntu.
>> > But when I tried to start xend, it failed.
>>
>> Please also CC the mailing list. I did this for you.
>> >
>> > /var/log/xend.log:
>> >
>> > *[2011-04-13 20:35:52 6937] DEBUG (tcp:96) Listening on :8002
>> > [2011-04-13 20:35:52 6937] ERROR (SrvDaemon:349) Exception starting xend
>> > ((98, 'Address already in use'))
>> > Traceback (most recent call last):
>> >   File "usr/lib/python2.5/site-packages/xen/xend/server/SrvDaemon.py",
>> line
>> > 339, in run
>> >     relocate.listenRelocation()
>> >   File "usr/lib/python2.5/site-packages/xen/xend/server/relocate.py",
>> line
>> > 159, in listenRelocation
>> >     hosts_allow = hosts_allow)
>> >   File "usr/lib/python2.5/site-packages/xen/web/tcp.py", line 38, in
>> > __init__
>> >     connection.SocketListener.__init__(self, protocol_class)
>> >   File "usr/lib/python2.5/site-packages/xen/web/connection.py", line 89,
>> in
>> > __init__
>> >     self.sock = self.createSocket()
>> >   File "usr/lib/python2.5/site-packages/xen/web/tcp.py", line 97, in
>> > createSocket
>> >     sock.bind((self.interface, self.port))
>> >   File "<string>", line 1, in bind
>> > error: (98, 'Address already in use')
>>
>> Looks like someobyd is listening already on that port.
>> > [2011-04-13 20:35:52 6936] INFO (SrvDaemon:220) Xend exited with status
>> 1.*
>> >
>> > Could you tell me what may cause this? Someone might have met this
>> before,
>> > but I can't find a solution.
>> >
>> >
>> http://lists.xensource.com/archives/html/xen-users/2006-05/msg00397.html
>> >
>> > netstat -ltnp does show an active connection, listening local address
>> > 0.0.0.0:8002, but I don't know if it is right or not
>>
>> Ok, what program is using it?
>> >
>> >
>> > thanks
>> >
>> > ruozeng.w
>> > regards
>> > 2011-4-43
>> >
>> >
>> >
>> > 2011/4/6 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
>> >
>> > > On Wed, Apr 06, 2011 at 10:57:00PM +0800, ruozeng wang wrote:
>> > > > Sorry, I'm a little confused……What is this 2.6.39 kernel for? When I
>> > > build
>> > > > and install xen, it downloaded a "linux-2.6.18-xen.hg" (using
>> mercurial),
>> > > > should I update this kernel to 2.6.39? Or update my host OS kernel
>> to
>> > > > 2.6.39? I found 2.6.39-rc2 kernel at kernel.org, but it's not for
>> xen,
>> > > it's
>> > > > a stadard kernel, I think.
>> > >
>> > > The standard mainline kernel has Xen components in it. You need to
>> > > compile it with CONFIG_PVOPS and CONFIG_XEN and you will have a fully
>> > > working kernel that can boot up either on native, or under the Xen
>> > > hypervisor.
>> > >
>> > >
>> > > >
>> > > > So is this my misunderstanding?
>> > > >
>> > > > I planed to install xen 4.0.0 on CentOS 5.4 tommorow.
>> > > > Please tell me some more details. Thank you so much for you
>> patience.
>> > >
>> > > Please use Google. Search for 'PVOPS Wiki'.
>> > >
>>
>
>

[-- Attachment #1.2: Type: text/html, Size: 8243 bytes --]

[-- Attachment #2: Type: text/plain, Size: 138 bytes --]

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Re: How can I use grant table in domainU?
  2011-04-14 12:22                   ` ruozeng wang
@ 2011-04-14 13:39                     ` Konrad Rzeszutek Wilk
  2011-04-14 15:58                       ` ruozeng wang
  0 siblings, 1 reply; 8+ messages in thread
From: Konrad Rzeszutek Wilk @ 2011-04-14 13:39 UTC (permalink / raw)
  To: ruozeng wang; +Cc: xen-devel

On Thu, Apr 14, 2011 at 08:22:24PM +0800, ruozeng wang wrote:
> This is from /var/log/xen/xend-debug.log:

Look also in the xend.log file, and make sure to turn on the DEBUg
options in your /etc/xen/xend-config.sxp file. And read through the
file please.

Have you tried using 'xl'?

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Re: How can I use grant table in domainU?
  2011-04-14 13:39                     ` Konrad Rzeszutek Wilk
@ 2011-04-14 15:58                       ` ruozeng wang
  2011-04-14 16:20                         ` Re: Xend hanging Konrad Rzeszutek Wilk
  0 siblings, 1 reply; 8+ messages in thread
From: ruozeng wang @ 2011-04-14 15:58 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk; +Cc: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 3667 bytes --]

Yes, I've tried some of the xen command , but all of them return this error
:
"*Unable to connect to xend: No such file or dirctory. Is xend running?*"

Then I found the infomation in xend-debug.log, which I've send in last mail.

Here is the content of xend.log:

*[2011-04-13 20:35:52 6937] DEBUG (tcp:96) Listening on :8002
[2011-04-13 20:35:52 6937] ERROR (SrvDaemon:349) Exception starting xend
((98, 'Address already in use'))
Traceback (most recent call last):
  File "usr/lib/python2.5/site-**packages/xen/xend/server/**SrvDaemon.py",
line 339, in run
    relocate.listenRelocation()
  File "usr/lib/python2.5/site-**packages/xen/xend/server/**relocate.py",
line 159, in listenRelocation
    hosts_allow = hosts_allow)
  File "usr/lib/python2.5/site-**packages/xen/web/tcp.py", line 38, in
__init__
    connection.SocketListener.__**init__(self, protocol_class)
  File "usr/lib/python2.5/site-**packages/xen/web/connection.**py", line 89,
in __init__
    self.sock = self.createSocket()
  File "usr/lib/python2.5/site-**packages/xen/web/tcp.py", line 97, in
createSocket
    sock.bind((self.interface, self.port))
  File "<string>", line 1, in bind
error: (98, 'Address already in use')
[2011-04-13 20:35:52 6936] INFO (SrvDaemon:220) Xend exited with status 1.


*
but since I set loglevel to DEBUG in xend-config.sxp, it changed to this:

*[2011-04-14 23:40:21 6477] INFO (SrvDaemon:332) Xend Daemon started
[2011-04-14 23:40:21 6477] INFO (SrvDaemon:336) Xend changeset: unavailable.
[2011-04-14 23:40:21 6477] DEBUG (tcp:96) Listening on :8002
[2011-04-14 23:40:22 6477] DEBUG (XendNode:332) pscsi record count: 10
[2011-04-14 23:40:22 6477] DEBUG (XendCPUPool:747) recreate_active_pools*

When I enter "xend start", the output infomation is like this:
*
root@ruozeng-desktop2:~# xend start
There is already a pid file /var/run/dhclient.eth0.pid with pid 5962
killed old client process, removed PID file
Internet Systems Consortium DHCP Client V3.0.6
Copyright 2004-2007 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/eth0/00:1d:7d:57:23:12
Sending on   LPF/eth0/00:1d:7d:57:23:12
Sending on   Socket/fallback
DHCPRELEASE on eth0 to 172.21.201.1 port 67
Nothing to flush.
There is already a pid file /var/run/dhclient.eth0.pid with pid 134519072
Internet Systems Consortium DHCP Client V3.0.6
Copyright 2004-2007 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/eth0/00:1d:7d:57:23:12
Sending on   LPF/eth0/00:1d:7d:57:23:12
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
DHCPOFFER of 172.21.6.114 from 172.21.6.254
DHCPREQUEST of 172.21.6.114 on eth0 to 255.255.255.255 port 67
DHCPACK of 172.21.6.114 from 172.21.6.254
bound to 172.21.6.114 -- renewal in 41866 seconds.
*
Then it stucked here. I have to use control-c to interrupt.

If I use ps -A, it shows that there are four "xend" process :

 *6306 pts/0    00:00:00 xend
 6376 ?        00:00:00 kworker/1:2
 6442 ?        00:00:00 dhclient3
 6474 pts/0    00:00:00 blktapctrl <defunct>
 6475 ?        00:00:00 xend <defunct>
 6476 ?        00:00:00 xend
 6477 ?        00:00:00 xend
*
And some other xen related processes, xenbus, etc.

ruozeng.w
2011-4-14

2011/4/14 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

> On Thu, Apr 14, 2011 at 08:22:24PM +0800, ruozeng wang wrote:
> > This is from /var/log/xen/xend-debug.log:
>
> Look also in the xend.log file, and make sure to turn on the DEBUg
> options in your /etc/xen/xend-config.sxp file. And read through the
> file please.
>
> Have you tried using 'xl'?
>

[-- Attachment #1.2: Type: text/html, Size: 4559 bytes --]

[-- Attachment #2: Type: text/plain, Size: 138 bytes --]

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Re: Xend hanging.
  2011-04-14 15:58                       ` ruozeng wang
@ 2011-04-14 16:20                         ` Konrad Rzeszutek Wilk
  0 siblings, 0 replies; 8+ messages in thread
From: Konrad Rzeszutek Wilk @ 2011-04-14 16:20 UTC (permalink / raw)
  To: ruozeng wang; +Cc: xen-devel

On Thu, Apr 14, 2011 at 11:58:43PM +0800, ruozeng wang wrote:
> Yes, I've tried some of the xen command , but all of them return this error
> :
> "*Unable to connect to xend: No such file or dirctory. Is xend running?*"
> 
> Then I found the infomation in xend-debug.log, which I've send in last mail.
> 
> Here is the content of xend.log:
> 
> *[2011-04-13 20:35:52 6937] DEBUG (tcp:96) Listening on :8002
> [2011-04-13 20:35:52 6937] ERROR (SrvDaemon:349) Exception starting xend
> ((98, 'Address already in use'))
> Traceback (most recent call last):
>   File "usr/lib/python2.5/site-**packages/xen/xend/server/**SrvDaemon.py",
> line 339, in run
>     relocate.listenRelocation()
>   File "usr/lib/python2.5/site-**packages/xen/xend/server/**relocate.py",
> line 159, in listenRelocation
>     hosts_allow = hosts_allow)
>   File "usr/lib/python2.5/site-**packages/xen/web/tcp.py", line 38, in
> __init__
>     connection.SocketListener.__**init__(self, protocol_class)
>   File "usr/lib/python2.5/site-**packages/xen/web/connection.**py", line 89,
> in __init__
>     self.sock = self.createSocket()
>   File "usr/lib/python2.5/site-**packages/xen/web/tcp.py", line 97, in
> createSocket
>     sock.bind((self.interface, self.port))
>   File "<string>", line 1, in bind
> error: (98, 'Address already in use')
> [2011-04-13 20:35:52 6936] INFO (SrvDaemon:220) Xend exited with status 1.
> 
> 
> *
> but since I set loglevel to DEBUG in xend-config.sxp, it changed to this:
> 
> *[2011-04-14 23:40:21 6477] INFO (SrvDaemon:332) Xend Daemon started
> [2011-04-14 23:40:21 6477] INFO (SrvDaemon:336) Xend changeset: unavailable.
> [2011-04-14 23:40:21 6477] DEBUG (tcp:96) Listening on :8002
> [2011-04-14 23:40:22 6477] DEBUG (XendNode:332) pscsi record count: 10
> [2011-04-14 23:40:22 6477] DEBUG (XendCPUPool:747) recreate_active_pools*
> 
> When I enter "xend start", the output infomation is like this:
> *
> root@ruozeng-desktop2:~# xend start
> There is already a pid file /var/run/dhclient.eth0.pid with pid 5962
> killed old client process, removed PID file
> Internet Systems Consortium DHCP Client V3.0.6
> Copyright 2004-2007 Internet Systems Consortium.
> All rights reserved.
> For info, please visit http://www.isc.org/sw/dhcp/
> 
> Listening on LPF/eth0/00:1d:7d:57:23:12
> Sending on   LPF/eth0/00:1d:7d:57:23:12
> Sending on   Socket/fallback
> DHCPRELEASE on eth0 to 172.21.201.1 port 67
> Nothing to flush.
> There is already a pid file /var/run/dhclient.eth0.pid with pid 134519072
> Internet Systems Consortium DHCP Client V3.0.6
> Copyright 2004-2007 Internet Systems Consortium.
> All rights reserved.
> For info, please visit http://www.isc.org/sw/dhcp/
> 
> Listening on LPF/eth0/00:1d:7d:57:23:12
> Sending on   LPF/eth0/00:1d:7d:57:23:12
> Sending on   Socket/fallback
> DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
> DHCPOFFER of 172.21.6.114 from 172.21.6.254
> DHCPREQUEST of 172.21.6.114 on eth0 to 255.255.255.255 port 67
> DHCPACK of 172.21.6.114 from 172.21.6.254
> bound to 172.21.6.114 -- renewal in 41866 seconds.
> *

How did you get it to do a dhclient on eth0? Can you just
re-install the toolstack from the hg tree? I am really not sure
why it is in such a state.

> Then it stucked here. I have to use control-c to interrupt.
> 
> If I use ps -A, it shows that there are four "xend" process :
> 
>  *6306 pts/0    00:00:00 xend
>  6376 ?        00:00:00 kworker/1:2
>  6442 ?        00:00:00 dhclient3
>  6474 pts/0    00:00:00 blktapctrl <defunct>
>  6475 ?        00:00:00 xend <defunct>
>  6476 ?        00:00:00 xend
>  6477 ?        00:00:00 xend
> *
> And some other xen related processes, xenbus, etc.
> 
> ruozeng.w
> 2011-4-14
> 
> 2011/4/14 Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> 
> > On Thu, Apr 14, 2011 at 08:22:24PM +0800, ruozeng wang wrote:
> > > This is from /var/log/xen/xend-debug.log:
> >
> > Look also in the xend.log file, and make sure to turn on the DEBUg
> > options in your /etc/xen/xend-config.sxp file. And read through the
> > file please.
> >
> > Have you tried using 'xl'?
> >

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-04-14 16:20 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-04 10:15 How can I use grant table in domainU? ruozeng.w
2011-04-04 14:25 ` Konrad Rzeszutek Wilk
     [not found] ` <201104051205497648564@gmail.com>
     [not found]   ` <20110405134423.GA6075@dumpdata.com>
     [not found]     ` <BANLkTinkrAr9cKb17skdtWdQTJ1AT63xCA@mail.gmail.com>
     [not found]       ` <20110406121510.GA5009@dumpdata.com>
     [not found]         ` <BANLkTikHJ5TtiOZOc7mdLpMqg-s4OmMBEA@mail.gmail.com>
     [not found]           ` <20110406152554.GA8253@dumpdata.com>
     [not found]             ` <BANLkTi=0fEdC8PjsWp_8rmdwybpsex1q+Q@mail.gmail.com>
2011-04-13 17:43               ` Konrad Rzeszutek Wilk
2011-04-14  2:08                 ` ruozeng wang
2011-04-14 12:22                   ` ruozeng wang
2011-04-14 13:39                     ` Konrad Rzeszutek Wilk
2011-04-14 15:58                       ` ruozeng wang
2011-04-14 16:20                         ` Re: Xend hanging Konrad Rzeszutek Wilk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.