Re: [PATCH] new timer-based work scheduling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Hey,

On Tue, 18 Jan 2011 12:28:20 +0900
FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> wrote:

> On Mon, 17 Jan 2011 21:05:11 +0200
> Alexander Nezhinsky <alexandern@xxxxxxxxxxxx> wrote:
> 
> > +static void work_timer_evt_handler(int fd, int events, void *data)
> > +{
> > +	unsigned long long n; /* timer expirations */
> > +	int ret;
> > +
> > +	ret = read(timer_fd_rd, &n, sizeof(n));
> > +	if (ret < 0) {
> > +		if (ret == -EAGAIN)
> > +			return;
> > +		eprintf("Failed to read from pipe, %m\n");
> > +		return;
> > +	}
> > +	current_time += n * WORK_TIMER_INT_MSEC;
> 
> Hmm, I think that you need gettimeofday for this signal
> approach. Signals could be lost (the process could miss a signal when
> it's too busy) so the above code doesn't work.
> 
> timerfd is nice because reading the file descriptor tells how many
> times the timer expires.
> 
> As I wrote, I don't want to add gettimeofday for the timerfd approach
> but using gettimeofday for this signal approach is fine by me.
> 
> One thing I want to change in your previous patch is using 'unsigned
> int when' in tgt_work struct instead of struct timeval. It allows the
> timerfd and signal appoaches to share that. The signal appoach can
> convert struct timeval to unsigned int current_time.

I did by myself. Alexander, can you check if this works for you.

Thanks,
--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux SCSI]     [Linux RAID]     [Linux Clusters]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Free Online Dating]     [Linux Kernel]     [XFree86]     [Video Devices]

Add to Google Powered by Linux