aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>2003-03-13 21:37:07 +0000
committeriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>2003-03-13 21:37:07 +0000
commitf9e443afb85c3843c8abd0760ee4a77b0aceeeed (patch)
tree7e7c32b6b492c79e0484f4cc1fa81bae16a514ed
parent46145d96ec4b7cb0611715efb0bbc3c205be5076 (diff)
parent17d79996321b67d1ab583684ee67f5b1e28cf183 (diff)
downloadxen-f9e443afb85c3843c8abd0760ee4a77b0aceeeed.tar.gz
xen-f9e443afb85c3843c8abd0760ee4a77b0aceeeed.tar.bz2
xen-f9e443afb85c3843c8abd0760ee4a77b0aceeeed.zip
bitkeeper revision 1.122.1.14 (3e70fa03agHmgzj9cO0FmaGzS2RcPg)
Merge labyrinth.cl.cam.ac.uk:/usr/groups/xeno/BK/xeno.bk into labyrinth.cl.cam.ac.uk:/anfs/scratch/labyrinth/iap10/xeno-clone/xeno.bk
-rw-r--r--xen/arch/i386/irq.c4
-rw-r--r--xen/common/perfc.c8
-rw-r--r--xen/drivers/char/xen_kbd.c3
-rw-r--r--xen/drivers/char/xen_serial.c2
-rw-r--r--xen/include/asm-i386/irq.h1
-rw-r--r--xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_scsi.c6
6 files changed, 15 insertions, 9 deletions
diff --git a/xen/arch/i386/irq.c b/xen/arch/i386/irq.c
index 312cfe7970..6485b6ba15 100644
--- a/xen/arch/i386/irq.c
+++ b/xen/arch/i386/irq.c
@@ -537,7 +537,9 @@ asmlinkage unsigned int do_IRQ(struct pt_regs regs)
do_softirq();
rdtscl(cc_end);
- perfc_adda(irq_time, cpu, cc_end - cc_start);
+
+ if(!action || (!(action->flags & SA_NOPROFILE)) )
+ perfc_adda(irq_time, cpu, cc_end - cc_start);
return 1;
}
diff --git a/xen/common/perfc.c b/xen/common/perfc.c
index cc277a914a..704bef1d3b 100644
--- a/xen/common/perfc.c
+++ b/xen/common/perfc.c
@@ -47,18 +47,18 @@ void __perfc_print (unsigned long counter[], int offset)
return;
}
if (element_size == 0) { /* single counter */
- printf ("%10ld 0x%08lx %s\n", counter[0], counter[0],
+ printf ("%10lu 0x%08lx %s\n", counter[0], counter[0],
perfc_name[loop] + 2 + num);
} else if (cpus) { /* counter per CPU */
for (loop = 0; loop < smp_num_cpus; loop++) {
- printf ("%10ld 0x%08lx cpu[%02d] %s\n",
+ printf ("%10lu 0x%08lx cpu[%02d] %s\n",
counter[loop], counter[loop],
loop, perfc_name[loop]);
}
} else { /* show entire array */
for (loop = 0; loop < element_size; loop++) {
- printf ("%10ld 0x%08lx %s:%d\n",
+ printf ("%10lu 0x%08lx %s:%d\n",
counter[loop], counter[loop],
perfc_name[loop] + 2 + num, loop);
}
@@ -103,6 +103,8 @@ void perfc_printall (u_char key, void *dev_id, struct pt_regs *regs)
}
}
+ //perfc_reset( key, dev_id, regs );
+
return;
}
diff --git a/xen/drivers/char/xen_kbd.c b/xen/drivers/char/xen_kbd.c
index dc9379a06c..b103f2fb4e 100644
--- a/xen/drivers/char/xen_kbd.c
+++ b/xen/drivers/char/xen_kbd.c
@@ -1,4 +1,5 @@
#include <asm-i386/io.h>
+#include <asm-i386/irq.h>
#include <xeno/sched.h> /* this has request_irq() proto for some reason */
#include <xeno/keyhandler.h>
@@ -183,7 +184,7 @@ static void keyboard_interrupt(int irq, void *dev_id, struct pt_regs *regs)
void initialize_keyboard()
{
- if(request_irq(KEYBOARD_IRQ, keyboard_interrupt, 0, "keyboard", NULL))
+ if(request_irq(KEYBOARD_IRQ, keyboard_interrupt, SA_NOPROFILE, "keyboard", NULL))
printk("initialize_keyboard: failed to alloc IRQ %d\n", KEYBOARD_IRQ);
return;
diff --git a/xen/drivers/char/xen_serial.c b/xen/drivers/char/xen_serial.c
index 4fba991997..95107e587d 100644
--- a/xen/drivers/char/xen_serial.c
+++ b/xen/drivers/char/xen_serial.c
@@ -85,6 +85,6 @@ void initialize_serial()
outb(NS16550_MCR_OUT2, SERIAL_BASE + NS16550_MCR); /* Modem control */
outb(NS16550_IER_ERDAI, SERIAL_BASE + NS16550_IER ); /* Setup interrupts */
- if((rc = request_irq(4, serial_rx_int, 0, "serial", 0)))
+ if((rc = request_irq(4, serial_rx_int, SA_NOPROFILE, "serial", 0)))
printk("initialize_serial: failed to get IRQ4, rc=%d\n", rc);
}
diff --git a/xen/include/asm-i386/irq.h b/xen/include/asm-i386/irq.h
index 41049e71b2..21c24f4483 100644
--- a/xen/include/asm-i386/irq.h
+++ b/xen/include/asm-i386/irq.h
@@ -8,6 +8,7 @@
#define SA_INTERRUPT 0x20000000
#define SA_SHIRQ 0x04000000
+#define SA_NOPROFILE 0x02000000
#define SA_SAMPLE_RANDOM 0 /* Linux driver compatibility */
diff --git a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_scsi.c b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_scsi.c
index f765d3f12e..e4d1007575 100644
--- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_scsi.c
+++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/drivers/block/xl_scsi.c
@@ -62,16 +62,16 @@ int xlscsi_init(xen_disk_info_t *xdi)
/* Initialize global arrays. */
for ( i = 0; i < XLSCSI_MAX; i++ )
{
- xlscsi_blksize_size[i] = 512;
+ xlscsi_blksize_size[i] = 1024; //XXX 512;
xlscsi_hardsect_size[i] = 512;
- xlscsi_max_sectors[i] = 128;
+ xlscsi_max_sectors[i] = 128*8; //XXX 128
}
blk_size[XLSCSI_MAJOR] = NULL;
blksize_size[XLSCSI_MAJOR] = xlscsi_blksize_size;
hardsect_size[XLSCSI_MAJOR] = xlscsi_hardsect_size;
max_sectors[XLSCSI_MAJOR] = xlscsi_max_sectors;
- read_ahead[XLSCSI_MAJOR] = 8;
+ read_ahead[XLSCSI_MAJOR] = NULL; //XXX8;
blk_init_queue(BLK_DEFAULT_QUEUE(XLSCSI_MAJOR), do_xlblk_request);