[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-3.0.3-testing] merge
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxx # Date 1160497058 -3600 # Node ID fd7643e548e667d41ad71809a7c02da663bc3d37 # Parent 33d436ca791760e57574c1d93f38d9619685d2dd # Parent f8ddc9abf3ef7b8b8ab3a235f096a0ccb66efcb7 merge --- linux-2.6-xen-sparse/drivers/xen/netback/interface.c | 1 linux-2.6-xen-sparse/drivers/xen/netback/netback.c | 22 ++++++++++++++-- tools/examples/block | 1 tools/libxc/xc_load_elf.c | 2 - tools/misc/miniterm/miniterm.c | 25 ++++++++++++++----- tools/python/xen/util/blkif.py | 2 - xen/common/elf.c | 2 - 7 files changed, 42 insertions(+), 13 deletions(-) diff -r 33d436ca7917 -r fd7643e548e6 linux-2.6-xen-sparse/drivers/xen/netback/interface.c --- a/linux-2.6-xen-sparse/drivers/xen/netback/interface.c Mon Oct 09 17:12:19 2006 +0100 +++ b/linux-2.6-xen-sparse/drivers/xen/netback/interface.c Tue Oct 10 17:17:38 2006 +0100 @@ -153,6 +153,7 @@ netif_t *netif_alloc(domid_t domid, unsi netif->credit_bytes = netif->remaining_credit = ~0UL; netif->credit_usec = 0UL; init_timer(&netif->credit_timeout); + netif->credit_timeout.expires = jiffies; dev->hard_start_xmit = netif_be_start_xmit; dev->get_stats = netif_be_get_stats; diff -r 33d436ca7917 -r fd7643e548e6 linux-2.6-xen-sparse/drivers/xen/netback/netback.c --- a/linux-2.6-xen-sparse/drivers/xen/netback/netback.c Mon Oct 09 17:12:19 2006 +0100 +++ b/linux-2.6-xen-sparse/drivers/xen/netback/netback.c Tue Oct 10 17:17:38 2006 +0100 @@ -793,10 +793,27 @@ void netif_deschedule_work(netif_t *neti } +static void tx_add_credit(netif_t *netif) +{ + unsigned long max_burst; + + /* + * Allow a burst big enough to transmit a jumbo packet of up to 128kB. + * Otherwise the interface can seize up due to insufficient credit. + */ + max_burst = RING_GET_REQUEST(&netif->tx, netif->tx.req_cons)->size; + max_burst = min(max_burst, 131072UL); + max_burst = max(max_burst, netif->credit_bytes); + + netif->remaining_credit = min(netif->remaining_credit + + netif->credit_bytes, + max_burst); +} + static void tx_credit_callback(unsigned long data) { netif_t *netif = (netif_t *)data; - netif->remaining_credit = netif->credit_bytes; + tx_add_credit(netif); netif_schedule_work(netif); } @@ -1119,12 +1136,11 @@ static void net_tx_action(unsigned long /* Passed the point where we can replenish credit? */ if (time_after_eq(now, next_credit)) { netif->credit_timeout.expires = now; - netif->remaining_credit = netif->credit_bytes; + tx_add_credit(netif); } /* Still too big to send right now? Set a callback. */ if (txreq.size > netif->remaining_credit) { - netif->remaining_credit = 0; netif->credit_timeout.data = (unsigned long)netif; netif->credit_timeout.function = diff -r 33d436ca7917 -r fd7643e548e6 tools/examples/block --- a/tools/examples/block Mon Oct 09 17:12:19 2006 +0100 +++ b/tools/examples/block Tue Oct 10 17:17:38 2006 +0100 @@ -377,7 +377,6 @@ mount it read-write in a guest domain." "") claim_lock "block" success - echo happy gun \"$t\" >>/tmp/block.$$ release_lock "block" ;; esac diff -r 33d436ca7917 -r fd7643e548e6 tools/libxc/xc_load_elf.c --- a/tools/libxc/xc_load_elf.c Mon Oct 09 17:12:19 2006 +0100 +++ b/tools/libxc/xc_load_elf.c Tue Oct 10 17:17:38 2006 +0100 @@ -364,7 +364,7 @@ static int parseelfimage(const char *ima if ( p != NULL && strncmp(p, "yes", 3) == 0 ) { dsi->pae_kernel = PAEKERN_yes; - if ( !strncmp(p+4, "[extended-cr3]", 14) ) + if ( !strncmp(p+3, "[extended-cr3]", 14) ) dsi->pae_kernel = PAEKERN_extended_cr3; } } diff -r 33d436ca7917 -r fd7643e548e6 tools/misc/miniterm/miniterm.c --- a/tools/misc/miniterm/miniterm.c Mon Oct 09 17:12:19 2006 +0100 +++ b/tools/misc/miniterm/miniterm.c Tue Oct 10 17:17:38 2006 +0100 @@ -32,10 +32,11 @@ #include <signal.h> #include <sys/types.h> #include <sys/wait.h> +#include <string.h> #define DEFAULT_BAUDRATE 115200 #define DEFAULT_SERDEVICE "/dev/ttyS0" -#define ENDMINITERM 2 /* ctrl-b to quit miniterm */ +#define ENDMINITERM 0x1d volatile int stop = 0; @@ -76,7 +77,11 @@ int main(int argc, char **argv) char *sername = DEFAULT_SERDEVICE; struct termios oldsertio, newsertio, oldstdtio, newstdtio; struct sigaction sa; - + static char start_str[] = + "************ REMOTE CONSOLE: CTRL-] TO QUIT ********\r\n"; + static char end_str[] = + "\n************ REMOTE CONSOLE EXITED *****************\n"; + while ( --argc != 0 ) { char *p = argv[argc]; @@ -121,7 +126,7 @@ int main(int argc, char **argv) newsertio.c_iflag = IGNBRK | IGNPAR; /* Raw output. */ - newsertio.c_oflag = 0; + newsertio.c_oflag = OPOST; /* No echo and no signals. */ newsertio.c_lflag = 0; @@ -137,7 +142,13 @@ int main(int argc, char **argv) /* next stop echo and buffering for stdin */ tcgetattr(0,&oldstdtio); tcgetattr(0,&newstdtio); /* get working stdtio */ - newstdtio.c_lflag &= ~(ICANON | ECHO); + newstdtio.c_iflag &= ~(BRKINT | ICRNL | INPCK | ISTRIP | IXON); + newstdtio.c_oflag &= ~OPOST; + newstdtio.c_cflag &= ~(CSIZE | PARENB); + newstdtio.c_cflag |= CS8; + newstdtio.c_lflag &= ~(ECHO | ICANON | IEXTEN | ISIG); + newstdtio.c_cc[VMIN]=1; + newstdtio.c_cc[VTIME]=0; tcsetattr(0,TCSANOW,&newstdtio); /* Terminal settings done: now enter the main I/O loops. */ @@ -145,7 +156,7 @@ int main(int argc, char **argv) { case 0: close(1); /* stdout not needed */ - for ( c = getchar(); c != ENDMINITERM ; c = getchar() ) + for ( c = (char)getchar(); c != ENDMINITERM; c = (char)getchar() ) write(fd,&c,1); tcsetattr(fd,TCSANOW,&oldsertio); tcsetattr(0,TCSANOW,&oldstdtio); @@ -158,7 +169,7 @@ int main(int argc, char **argv) close(fd); exit(-1); default: - printf("** ctrl-b quits miniterm **\n"); + write(1, start_str, strlen(start_str)); close(0); /* stdin not needed */ sa.sa_handler = child_handler; sa.sa_flags = 0; @@ -166,9 +177,11 @@ int main(int argc, char **argv) while ( !stop ) { read(fd,&c,1); /* modem */ + c = (char)c; write(1,&c,1); /* stdout */ } wait(NULL); /* wait for child to die or it will become a zombie */ + write(1, end_str, strlen(end_str)); break; } diff -r 33d436ca7917 -r fd7643e548e6 tools/python/xen/util/blkif.py --- a/tools/python/xen/util/blkif.py Mon Oct 09 17:12:19 2006 +0100 +++ b/tools/python/xen/util/blkif.py Tue Oct 10 17:17:38 2006 +0100 @@ -64,7 +64,7 @@ def blkdev_uname_to_file(uname): """Take a blkdev uname and return the corresponding filename.""" fn = None if uname.find(":") != -1: - (typ, fn) = uname.split(":") + (typ, fn) = uname.split(":", 1) if typ == "phy" and not fn.startswith("/"): fn = "/dev/%s" %(fn,) if typ == "tap": diff -r 33d436ca7917 -r fd7643e548e6 xen/common/elf.c --- a/xen/common/elf.c Mon Oct 09 17:12:19 2006 +0100 +++ b/xen/common/elf.c Tue Oct 10 17:17:38 2006 +0100 @@ -304,7 +304,7 @@ int parseelfimage(struct domain_setup_in if ( p != NULL && strncmp(p, "yes", 3) == 0 ) { dsi->pae_kernel = PAEKERN_yes; - if ( !strncmp(p+4, "[extended-cr3]", 14) ) + if ( !strncmp(p+3, "[extended-cr3]", 14) ) dsi->pae_kernel = PAEKERN_extended_cr3; } } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |