From harisri@internode.on.net Mon Jan 31 23:10:25 2005 From: Srihari Vijayaraghavan To: Jens Axboe Subject: Re: [PATCH] elevator: print default selection Date: Mon, 31 Jan 2005 23:10:25 +1100 User-Agent: KMail/1.7.1 References: <20050112080947.GA2736@suse.de> In-Reply-To: <20050112080947.GA2736@suse.de> X-KMail-Link-Message: 494 X-KMail-Link-Type: reply MIME-Version: 1.0 Content-Disposition: inline Status: RO X-Status: RSC X-KMail-EncryptionState: N X-KMail-SignatureState: N Content-Type: Multipart/Mixed; boundary="Boundary-00=_xAi/BH2etUUo8ex" Message-Id: <200501312310.25771.harisri@internode.on.net> X-KMail-MDN-Sent: --Boundary-00=_xAi/BH2etUUo8ex Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline At a cost of one extra variable, this one works great for all cases: Hopefully the extra steps in elevator_init() won't hinder the performance, as elevator_init() seems to be the safest place to determine the default elevator, as all elevators are registered, when it is called. Sorry if it is no good. Thank you. Hari. --Boundary-00=_xAi/BH2etUUo8ex Content-Type: text/x-diff; charset="iso-8859-1"; name="elevator-default-selection" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="elevator-default-selection" --- 2.6.11/drivers/block/elevator.c 2005-01-22 15:22:55.000000000 +1100 +++ test/drivers/block/elevator.c 2005-01-31 22:38:36.000000000 +1100 @@ -180,6 +180,8 @@ __setup("elevator=", elevator_setup); +static int default_msg = 0; + int elevator_init(request_queue_t *q, char *name) { struct elevator_type *e = NULL; @@ -195,6 +197,12 @@ if (!e) return -EINVAL; + if (!default_msg && !strcmp(e->elevator_name, chosen_elevator)) { + printk(KERN_INFO "using %s as default io scheduler\n", + chosen_elevator); + default_msg = 1; + } + eq = kmalloc(sizeof(struct elevator_queue), GFP_KERNEL); if (!eq) { elevator_put(e->elevator_type); @@ -513,10 +521,7 @@ list_add_tail(&e->list, &elv_list); spin_unlock_irq(&elv_list_lock); - printk(KERN_INFO "io scheduler %s registered", e->elevator_name); - if (!strcmp(e->elevator_name, chosen_elevator)) - printk(" (default)"); - printk("\n"); + printk(KERN_INFO "io scheduler %s registered\n", e->elevator_name); return 0; } EXPORT_SYMBOL_GPL(elv_register); --Boundary-00=_xAi/BH2etUUo8ex--