I emailed the maintainers of the code. This is a response I got back from Alan "Maddog" Cox (with permission to post here):
Quote:
Quote:
Perhaps you can contribute to this discussion (concerning SCO vs linux performance differences with semget):
No but if you've got a good test case using gettimeofday() rather than time
so you get high precision time data file a bug in bugzilla.kernel.org as I
imagine Ingo Molnar and a few others might be interested.
High performance Linux code uses futex locks rather than sys5 locks but it
would still be nice to know if there really is such a big difference and why
Alan
So here is yet another version using gettimeofday(). Don't bother posting the benchmarks here, unless they are significantly different. But prepare them for bugzilla:
Hello,
I have a Supermicro server with a P4SCI mother board running Debian Sarge 3.1. This is the "dmidecode" output related to RAM info:
RAM speed information is incomplete.. "Current Speed: Unknown", is there anyway/soft to get the speed of installed RAM modules? thanks!!
Regards :)... (0 Replies)
Hi,
I am looking to use a semaphore for the first time in one of my scripts. I am just wondering if there are any simple examples or tutorials around?
I am a beginner so the simpler the better :)
Thanks
-Jaken (2 Replies)
I analysed disk performance with blktrace and get some data:
read:
8,3 4 2141 2.882115217 3342 Q R 195732187 + 32
8,3 4 2142 2.882116411 3342 G R 195732187 + 32
8,3 4 2144 2.882117647 3342 I R 195732187 + 32
8,3 4 2145 ... (1 Reply)
Control two exclusively shared resources(semaphore). The two resources are two files. The producer will write even numbers to one file, and odd numbers to another one. The consumer respectively reads from each file until it gets 5 even numbers and 5 odd numbers.
Can any one help me with the... (0 Replies)
If I create a semaphore and then I fork a number of child processes then all the child process use that same semaphore.
Since the process address spaces are different rfom each other then how all the child process are able to access the same semaphore?
I understand that semaphore/mutex is at os... (0 Replies)
I was asked to add this piece of code to a c program which I will execute through the shell:
for(long i = 0; i < NITER; i++)
{ sem_wait( &sema);
count++;
sem_post( &sema); }
I didn't get it, which is the critical section ? if it's "count++" how would a thread wake up in order to enter it... (1 Reply)
Discussion started by: uniran
1 Replies
LEARN ABOUT NETBSD
timespec_to_timeval
TIMEVAL(3) BSD Library Functions Manual TIMEVAL(3)NAME
timeval, timespec, itimerval, itimerspec, bintime -- time structures
SYNOPSIS
#include <sys/time.h>
void
TIMEVAL_TO_TIMESPEC(struct timeval *tv, struct timespec *ts);
void
TIMESPEC_TO_TIMEVAL(struct timeval *tv, struct timespec *ts);
DESCRIPTION
The <sys/time.h> header, included by <time.h>, defines various structures related to time and timers.
1. The following structure is used by gettimeofday(2), among others:
struct timeval {
time_t tv_sec;
suseconds_t tv_usec;
};
The tv_sec member represents the elapsed time, in whole seconds. The tv_usec member captures rest of the elapsed time, represented as
the number of microseconds.
2. The following structure is used by nanosleep(2), among others:
struct timespec {
time_t tv_sec;
long tv_nsec;
};
The tv_sec member is again the elapsed time in whole seconds. The tv_nsec member represents the rest of the elapsed time in nanosec-
onds.
A microsecond is equal to one millionth of a second, 1000 nanoseconds, or 1/1000 milliseconds. To ease the conversions, the macros
TIMEVAL_TO_TIMESPEC() and TIMESPEC_TO_TIMEVAL() can be used to convert between struct timeval and struct timespec.
3. The following structure is used by setitimer(2), among others:
struct itimerval {
struct timeval it_interval;
struct timeval it_value;
};
4. The following structure is used by timer_settime(2), among others:
struct itimerspec {
struct timespec it_interval;
struct timespec it_value;
};
Both struct itimerval and struct itimerspec are used to specify when a timer expires. Generally, it_interval specifies the period
between successive timer expirations. A value zero implies that the alarm will fire only once. If it_value is non-zero, it indicates
the time left to the next timer expiration. A value zero implies that the timer is disabled.
5. The following structure is used by bintime(9), among others:
struct bintime {
time_t sec;
uint64_t frac;
};
The sec member specifies the time in seconds and frac represents a 64-bit fraction of seconds. The struct bintime is meant to be used
in the kernel only. It is further described in timecounter(9).
EXAMPLES
It can be stressed that the traditional UNIX timeval and timespec structures represent elapsed time, measured by the system clock (see
hz(9)). The following sketch implements a function suitable for use in a context where the timespec structure is required for a conditional
timeout:
static void
example(struct timespec *spec, time_t minutes)
{
struct timeval elapsed;
(void)gettimeofday(&elapsed, NULL);
_DIAGASSERT(spec != NULL);
TIMEVAL_TO_TIMESPEC(&elapsed, spec);
/* Add the offset for timeout in minutes. */
spec->tv_sec = spec->tv_sec + minutes * 60;
}
A better alternative would use the more precise clock_gettime(2).
SEE ALSO timeradd(3), tm(3), bintime_add(9)BSD April 12, 2011 BSD