2002-11-05 17:29:25

by will fitzgerald

[permalink] [raw]
Subject: important how to stop interrupts and start them again after finishing what you wanted to do??

Hi all,

does any know how i can stop and start interrupts.

i have added a probe function to the kernel to measure
network mechanisms times in cycles, called
probe_point().

probe_point(int probeid){

get rdtsc time and put id and time into buffer
when full use printk to write buffer to disk.

}

then in mechanisms of interest i place a call to the
probe_point()for example,

vortex_interrupt(){

probe_point(10);// entry of function
.
.function stuff
.
.probe_point(11);// exit of function
}

the problem is some times my buffer does not record
some id's or times. i think this is because another
interrupt took place and so the probe_point() exits
before it gets a chance to store the id and time.

how do i go about setting an non interrupt in the
probe_point function to make sure it finishes what its
supposed to do?

for example:

probe_point(int probeid){

do not interrupt me until i do:

get rdtsc time and put id and time into buffer
when full use printk to write buffer to disk.

now i have finshed puting an id and time into a buffer
so you can interrpt now.

}


__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com


2002-11-05 18:53:11

by Richard B. Johnson

[permalink] [raw]
Subject: Re: important how to stop interrupts and start them again after finishing what you wanted to do??

On Tue, 5 Nov 2002, [iso-8859-1] will fitzgerald wrote:

> Hi all,
>
> does any know how i can stop and start interrupts.
>
[SNIPPED...]

`grep` kernel driver code for spinlock.


Cheers,
Dick Johnson
Penguin : Linux version 2.4.18 on an i686 machine (797.90 BogoMips).
Bush : The Fourth Reich of America