Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp1042861imm; Tue, 5 Jun 2018 08:16:43 -0700 (PDT) X-Google-Smtp-Source: ADUXVKJy/XUuHOZk3HZU/dr5YoK7ZsRkzkGfKOCjLZN3vVjgwS4KAjZSZvMiR2cTwaf8dquRnjW2 X-Received: by 2002:a62:9bc9:: with SMTP id e70-v6mr22489920pfk.15.1528211803633; Tue, 05 Jun 2018 08:16:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528211803; cv=none; d=google.com; s=arc-20160816; b=FM/knRaekR4S3m4CaQD8HZARgxenxwltVAh2c2HsPalB31IrUklNKLc49uiePDwTPg qtG62zraAjqPkQfCml31I/iAthrylqBOJamQcDy8l8fyqNQpocnKw/M+vY40aMXMADmC a5BL3EKtfaG4X3BpTzjkIH7f5LaGwQRyLOo9Gf8XisNjEhMaiOtgfwByGMKqkHxJblHr 6eKJ8ZeC6bqOz/2gNulFy/nLw4VzKrZmCNHt+U4zPW91pNVSb2wqzoItPLtGTyyqelTk 4mIcAq6Oos3dwBDBQocBt7h1cAsEus6yKjsZeq9/q+tlVYIBMC7N18QAn/HkH2gBXkIS GqCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :organization:references:in-reply-to:message-id:subject:cc:to:from :date:arc-authentication-results; bh=DUwZeFQUl9DbP/wXaTkgTbwEGVLaDuCKGdQD9vO67Cc=; b=HMe8w/zr0E4jb6cDBN6YPM3qPnVmBCWDWEI9DEZkcSwxVLk5b/q7vPdSXnoWPPREYQ LvVbRWYGeLbW3GSv4YPXTEMxybc5Drw8DYj+311/gLuzM9RiStD0cOgO4fup3dJsIzXv lTJqync4033Ickewvvmbax/sqx3XRt8P7V1Jz1Fo/qnYZmn3/BLVfruYkhX+zDBGIjTL GFwsCRLxvkKPwfliKcu8q08OYtCBMWK3ZjcHqNsPSldfkIb5T+x78ikwW+qn4x/djPQE Z9Ovdvkg2HdAuRRJ+S0R0Nwph7Oidwxf7F53e8MCr9OfbmaqnqXgdQv4pLJuWALII6dF sLlw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n4-v6si8200645plp.128.2018.06.05.08.16.29; Tue, 05 Jun 2018 08:16:43 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751919AbeFEPPq (ORCPT + 99 others); Tue, 5 Jun 2018 11:15:46 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:47960 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751599AbeFEPPo (ORCPT ); Tue, 5 Jun 2018 11:15:44 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 12516407541E; Tue, 5 Jun 2018 15:15:44 +0000 (UTC) Received: from gondolin (dhcp-192-222.str.redhat.com [10.33.192.222]) by smtp.corp.redhat.com (Postfix) with ESMTP id D19922026DEF; Tue, 5 Jun 2018 15:15:42 +0000 (UTC) Date: Tue, 5 Jun 2018 17:15:40 +0200 From: Cornelia Huck To: Pierre Morel Cc: Pierre Morel , pasic@linux.vnet.ibm.com, bjsdjshi@linux.vnet.ibm.com, linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org, kvm@vger.kernel.org Subject: Re: [PATCH v2 06/10] vfio: ccw: Make FSM functions atomic Message-ID: <20180605171540.229f69a9.cohuck@redhat.com> In-Reply-To: <6c39016f-8125-c5cc-3b9b-0bc517e5f642@linux.ibm.com> References: <1527243678-3140-1-git-send-email-pmorel@linux.vnet.ibm.com> <1527243678-3140-7-git-send-email-pmorel@linux.vnet.ibm.com> <20180605133850.3509a3d3.cohuck@redhat.com> <46613ac7-3156-7a78-7d49-acbc3f615b76@linux.ibm.com> <20180605153539.1eee99f9.cohuck@redhat.com> <6c39016f-8125-c5cc-3b9b-0bc517e5f642@linux.ibm.com> Organization: Red Hat GmbH MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.7]); Tue, 05 Jun 2018 15:15:44 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.7]); Tue, 05 Jun 2018 15:15:44 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'cohuck@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 5 Jun 2018 16:21:03 +0200 Pierre Morel wrote: > On 05/06/2018 15:35, Cornelia Huck wrote: > > On Tue, 5 Jun 2018 15:10:11 +0200 > > Pierre Morel wrote: > > > >> On 05/06/2018 13:38, Cornelia Huck wrote: > >>> On Fri, 25 May 2018 12:21:14 +0200 > >>> Pierre Morel wrote: > >>> > >>>> We use mutex around the FSM function call to make the FSM > >>>> event handling and state change atomic. > >>> I'm still not really clear as to what this mutex is supposed to > >>> serialize: > >>> > >>> - Modification of the state? > >>> - Any calls in the state machine? > >>> - A combination? (That would imply that we only deal with the state in > >>> the state machine.) > >> yes to all > > But wouldn't that imply that you need to either take the mutex if you > > do something dependent on the state, or fire an event in that case? > > Yes, if it is not I forgot something important (like I did in patch 10) > vfio_ccw_fsm_event(private, event) takes the mutex on firering an event. > > I have some cases where I do not respect this. > This is false and I must handle this with a new private variable, > this is where I test the state after having fired an event. > I will need to change this, in quiesce, reset, probe and open (others?). But isn't that inherently racy? Even if you check the return code from the state machine change, it might have changed in the meantime again.