From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from zimbra13.linbit.com (zimbra.linbit.com [212.69.161.123]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by mail09.linbit.com (LINBIT Mail Daemon) with ESMTPS id 9F66E1056330 for ; Mon, 14 Mar 2016 11:23:17 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by zimbra13.linbit.com (Postfix) with ESMTP id 8DDC64003AD for ; Mon, 14 Mar 2016 11:23:17 +0100 (CET) Received: from zimbra13.linbit.com ([127.0.0.1]) by localhost (zimbra13.linbit.com [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id uoA0s5fZjtcL for ; Mon, 14 Mar 2016 11:23:17 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by zimbra13.linbit.com (Postfix) with ESMTP id 70B8140051D for ; Mon, 14 Mar 2016 11:23:17 +0100 (CET) Received: from zimbra13.linbit.com ([127.0.0.1]) by localhost (zimbra13.linbit.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id SGdO2FxvO5nX for ; Mon, 14 Mar 2016 11:23:17 +0100 (CET) Received: from soda.linbit (tuerlsteher.linbit.com [86.59.100.100]) by zimbra13.linbit.com (Postfix) with ESMTPS id 46F0E4003AD for ; Mon, 14 Mar 2016 11:23:17 +0100 (CET) Date: Mon, 14 Mar 2016 11:23:16 +0100 From: Lars Ellenberg To: drbd-dev@lists.linbit.com Message-ID: <20160314102316.GI17669@soda.linbit> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Subject: Re: [Drbd-dev] request_timer continuous loop if there is disk-timeout List-Id: "*Coordination* of development, patches, contributions -- *Questions* \(even to developers\) go to drbd-user, please." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Mon, Mar 14, 2016 at 02:37:21PM +0900, =EB=B0=95=EA=B2=BD=EB=AF=BC wro= te: > I have known more request_timer_fn(). Thanks >=20 > I think helper function *time_min_in_future() *function will return the > nearest future time, right? > And, next_trigger_time is initialize now value, so always is same. > void request_timer_fn(unsigned long data) > { > if (dt) { > ... > if (device->disk_state[NOW] > D_FAILED) { > next_trigger_time =3D *time_min_in_future*(now, > next_trigger_time, oldest_submit_jif + dt); = // > 1st assign > restart_timer =3D true; > } > ... > } > for_each_connection(connection, device->resource) { > ... > next_trigger_time =3D *time_min_in_future*(now, > next_trigger_time, pre_send_jif + ent); = // > 2nd assign > ... > } > ... > if (restart_timer) { > next_trigger_time =3D *time_min_in_future*(now, next_trigger_ti= me, > now + et); // 3rd assign > ... > } > } > Maybe, 3 assignments are always same, because now =3D=3D next_trigger_t= ime, > which is the nearest. So, if restart_timer 's value is true, then > loop continuously even dt or ent exists. No. > I don't know how to put the different thing. Me neither. Also, you have seen this? > > When replying, please edit your Subject line so it is more specific > > than "Re: Contents of drbd-dev digest..."