From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965795Ab0BZTJM (ORCPT ); Fri, 26 Feb 2010 14:09:12 -0500 Received: from filtteri1.pp.htv.fi ([213.243.153.184]:45150 "EHLO filtteri1.pp.htv.fi" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965726Ab0BZTJK (ORCPT ); Fri, 26 Feb 2010 14:09:10 -0500 X-Greylist: delayed 483 seconds by postgrey-1.27 at vger.kernel.org; Fri, 26 Feb 2010 14:09:10 EST Date: Fri, 26 Feb 2010 21:01:00 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: =?utf-8?B?UmFmYcWCIE1pxYJlY2tp?= Cc: Andrew Morton , Thomas Gleixner , DRI , Linus Torvalds , Ingo Molnar , Linux Kernel Mailing List Subject: Re: [PATCH][RFC] time: add wait_interruptible_timeout macro to sleep (w. timeout) until wake_up Message-ID: <20100226190100.GQ10145@sci.fi> Mail-Followup-To: =?utf-8?B?UmFmYcWCIE1pxYJlY2tp?= , Andrew Morton , Thomas Gleixner , DRI , Linus Torvalds , Ingo Molnar , Linux Kernel Mailing List References: <1266761422-2921-1-git-send-email-zajec5@gmail.com> <20100226081418.5902446f.akpm@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Feb 26, 2010 at 06:33:57PM +0100, Rafał Miłecki wrote: > W dniu 26 lutego 2010 17:14 użytkownik Andrew Morton > napisał: > > On Fri, 26 Feb 2010 11:38:59 +0100 Rafa Miecki wrote: > > > >> +#define wait_interruptible_timeout(wq, timeout) > >>     \ > >> +({                                   \ > >> +    long ret = timeout;                      \ > >> +                                    \ > >> +    DEFINE_WAIT(wait);                      \ > >> +    prepare_to_wait(&wq, &wait, TASK_INTERRUPTIBLE);       \ > >> +    if (!signal_pending(current))                  \ > >> +        ret = schedule_timeout(ret);            \ > >> +    finish_wait(&wq, &wait);                   \ > >> +                                    \ > >> +    ret;                             \ > >> +}) > > > > It's often a mistake to use signals in-kernel.  Signals are more a > > userspace thing and it's better to use the lower-level kernel-specific > > messaging tools in-kernel.  Bear in mind that userspace can > > independently and asynchronously send, accept and block signals. > > Can you point me to something kernel-level please? > > > > Can KMS use wait_event_interruptible_timeout()? > > No. Please check definition of this: > > #define wait_event_interruptible_timeout(wq, condition, timeout) \ > ({ \ > long __ret = timeout; \ > if (!(condition)) \ > __wait_event_interruptible_timeout(wq, condition, __ret); \ > __ret; \ > }) > > It uses condition there, but that's not a big issue. We just need to > pass 0 (false) there and it will work so far. Disabling the condition check doesn't make sense. You could use a completion. init_completion(vbl_irq); enable_vbl_irq(); wait_for_completion(vbl_irq); disable_vbl_irq(); and call complete(vbl_irq) in the interrupt handler. The same would of course work with just some flag or counter and a wait queue. Isn't there already a vbl counter that you could compare in the condition? -- Ville Syrjälä syrjala@sci.fi http://www.sci.fi/~syrjala/ From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH][RFC] time: add wait_interruptible_timeout macro to sleep (w. timeout) until wake_up Date: Fri, 26 Feb 2010 21:01:00 +0200 Message-ID: <20100226190100.GQ10145@sci.fi> References: <1266761422-2921-1-git-send-email-zajec5@gmail.com> <20100226081418.5902446f.akpm@linux-foundation.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.sourceforge.net To: =?utf-8?B?UmFmYcWCIE1pxYJlY2tp?= Cc: Ingo Molnar , Linux Kernel Mailing List , Andrew Morton , DRI , Linus Torvalds , Thomas Gleixner List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBGZWIgMjYsIDIwMTAgYXQgMDY6MzM6NTdQTSArMDEwMCwgUmFmYcWCIE1pxYJlY2tp IHdyb3RlOgo+IFcgZG5pdSAyNiBsdXRlZ28gMjAxMCAxNzoxNCB1xbx5dGtvd25payBBbmRyZXcg TW9ydG9uCj4gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+IG5hcGlzYcWCOgo+ID4gT24gRnJp LCAyNiBGZWIgMjAxMCAxMTozODo1OSArMDEwMCBSYWZhIE1pZWNraSA8emFqZWM1QGdtYWlsLmNv bT4gd3JvdGU6Cj4gPgo+ID4+ICsjZGVmaW5lIHdhaXRfaW50ZXJydXB0aWJsZV90aW1lb3V0KHdx LCB0aW1lb3V0KQo+ID4+IMKgIMKgIFwKPiA+PiArKHsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgXAo+ID4+ICsgwqAgwqBsb25nIHJldCA9IHRpbWVv dXQ7IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgXAo+ID4+ICsgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBcCj4gPj4gKyDCoCDCoERF RklORV9XQUlUKHdhaXQpOyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFwKPiA+PiAr IMKgIMKgcHJlcGFyZV90b193YWl0KCZ3cSwgJndhaXQsIFRBU0tfSU5URVJSVVBUSUJMRSk7IMKg IMKgIMKgIFwKPiA+PiArIMKgIMKgaWYgKCFzaWduYWxfcGVuZGluZyhjdXJyZW50KSkgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqBcCj4gPj4gKyDCoCDCoCDCoCDCoHJldCA9IHNjaGVkdWxlX3Rp bWVvdXQocmV0KTsgwqAgwqAgwqAgwqAgwqAgwqBcCj4gPj4gKyDCoCDCoGZpbmlzaF93YWl0KCZ3 cSwgJndhaXQpOyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcCj4gPj4gKyDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFwKPiA+PiArIMKgIMKg cmV0OyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcCj4gPj4gK30p Cj4gPgo+ID4gSXQncyBvZnRlbiBhIG1pc3Rha2UgdG8gdXNlIHNpZ25hbHMgaW4ta2VybmVsLiDC oFNpZ25hbHMgYXJlIG1vcmUgYQo+ID4gdXNlcnNwYWNlIHRoaW5nIGFuZCBpdCdzIGJldHRlciB0 byB1c2UgdGhlIGxvd2VyLWxldmVsIGtlcm5lbC1zcGVjaWZpYwo+ID4gbWVzc2FnaW5nIHRvb2xz IGluLWtlcm5lbC4gwqBCZWFyIGluIG1pbmQgdGhhdCB1c2Vyc3BhY2UgY2FuCj4gPiBpbmRlcGVu ZGVudGx5IGFuZCBhc3luY2hyb25vdXNseSBzZW5kLCBhY2NlcHQgYW5kIGJsb2NrIHNpZ25hbHMu Cj4gCj4gQ2FuIHlvdSBwb2ludCBtZSB0byBzb21ldGhpbmcga2VybmVsLWxldmVsIHBsZWFzZT8K PiAKPiAKPiA+IENhbiBLTVMgdXNlIHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZV90aW1lb3V0KCk/ Cj4gCj4gTm8uIFBsZWFzZSBjaGVjayBkZWZpbml0aW9uIG9mIHRoaXM6Cj4gCj4gI2RlZmluZSB3 YWl0X2V2ZW50X2ludGVycnVwdGlibGVfdGltZW91dCh3cSwgY29uZGl0aW9uLCB0aW1lb3V0KQlc Cj4gKHsJCQkJCQkJCQlcCj4gCWxvbmcgX19yZXQgPSB0aW1lb3V0OwkJCQkJCVwKPiAJaWYgKCEo Y29uZGl0aW9uKSkJCQkJCQlcCj4gCQlfX3dhaXRfZXZlbnRfaW50ZXJydXB0aWJsZV90aW1lb3V0 KHdxLCBjb25kaXRpb24sIF9fcmV0KTsgXAo+IAlfX3JldDsJCQkJCQkJCVwKPiB9KQo+IAo+IEl0 IHVzZXMgY29uZGl0aW9uIHRoZXJlLCBidXQgdGhhdCdzIG5vdCBhIGJpZyBpc3N1ZS4gV2UganVz dCBuZWVkIHRvCj4gcGFzcyAwIChmYWxzZSkgdGhlcmUgYW5kIGl0IHdpbGwgd29yayBzbyBmYXIu CgpEaXNhYmxpbmcgdGhlIGNvbmRpdGlvbiBjaGVjayBkb2Vzbid0IG1ha2Ugc2Vuc2UuCgpZb3Ug Y291bGQgdXNlIGEgY29tcGxldGlvbi4KCmluaXRfY29tcGxldGlvbih2YmxfaXJxKTsKZW5hYmxl X3ZibF9pcnEoKTsKd2FpdF9mb3JfY29tcGxldGlvbih2YmxfaXJxKTsKZGlzYWJsZV92YmxfaXJx KCk7CmFuZCBjYWxsIGNvbXBsZXRlKHZibF9pcnEpIGluIHRoZSBpbnRlcnJ1cHQgaGFuZGxlci4K ClRoZSBzYW1lIHdvdWxkIG9mIGNvdXJzZSB3b3JrIHdpdGgganVzdCBzb21lIGZsYWcgb3IgY291 bnRlcgphbmQgYSB3YWl0IHF1ZXVlLiBJc24ndCB0aGVyZSBhbHJlYWR5IGEgdmJsIGNvdW50ZXIg dGhhdCB5b3UgY291bGQKY29tcGFyZSBpbiB0aGUgY29uZGl0aW9uPwoKLS0gClZpbGxlIFN5cmrD pGzDpApzeXJqYWxhQHNjaS5maQpodHRwOi8vd3d3LnNjaS5maS9+c3lyamFsYS8KCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpEb3dubG9hZCBJbnRlbCYjMTc0OyBQYXJhbGxlbCBTdHVkaW8gRXZhbApU cnkgdGhlIG5ldyBzb2Z0d2FyZSB0b29scyBmb3IgeW91cnNlbGYuIFNwZWVkIGNvbXBpbGluZywg ZmluZCBidWdzCnByb2FjdGl2ZWx5LCBhbmQgZmluZS10dW5lIGFwcGxpY2F0aW9ucyBmb3IgcGFy YWxsZWwgcGVyZm9ybWFuY2UuClNlZSB3aHkgSW50ZWwgUGFyYWxsZWwgU3R1ZGlvIGdvdCBoaWdo IG1hcmtzIGR1cmluZyBiZXRhLgpodHRwOi8vcC5zZi5uZXQvc2Z1L2ludGVsLXN3LWRldgotLQpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEcmktZGV2ZWwg bWFpbGluZyBsaXN0CkRyaS1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9saXN0 cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vZHJpLWRldmVsCg==