Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp4132630imu; Tue, 18 Dec 2018 09:31:45 -0800 (PST) X-Google-Smtp-Source: AFSGD/UDpDK8iHWvSGo9e5qHj6443nYns/V0e86wH0XgIrbddNA9G0g2eYnINqPctm702XcPCR0o X-Received: by 2002:a63:cf02:: with SMTP id j2mr16163346pgg.113.1545154305142; Tue, 18 Dec 2018 09:31:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1545154305; cv=none; d=google.com; s=arc-20160816; b=W7vTC8X+zuKGJE04osAYYIuhT8/X7oEryT7o3USw7wNcJVNMTj3M3+9qZ+tKOxZkRA cMucqJAr/8pnDwaeDr7q570K3+TRM/hamX2D8ZM/K1DeGt+N1DxmAgjvUJrvQ43g2QZ6 RPuIE/bXN9ZjvGGDgwi/q8twvWY3YKChfzExB64Yw5AjAY2Z6SbwxJgGo4s9OJ3eLGPR UjkMeYt7DdC/xcvB+HFRu7qNPgOenEht4M+h1VbnuU0+ydRIEtlmzeiDLRk/nZJXsNas zn96gKBrpWG0umrcMd/jHizGn7SOAbwvwTmLKKsNd2NQ/HJ28TsdqLW/qz3XQYm0Oiy5 IX6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=gUey7Zbt0/b42GYcDqdXluKToQHKpjhH7c7i9g2qAPQ=; b=MVJu7j2BMbN9aSApQ9OI9ydsoqUQWkC3dz8GDcjyZIHftzkpQ3S8GPeXxJrItkGLPI LO5lC/svTm4ipcKsEZuV4SevCO+1IMnKYuLhOZJi5MIWRxT3fkcFe49mEHIV8EjnpJuV ztaQHPJ9LsIHBdQ+Z3EBPPjXwWKHIUwmKBdznZDbYCE+G7QPs3bjTsLPOBRwmrBQuY/u K9fB/AtoJAtjhJSlyEXbWDVzsLpg6BEEFWqtYlO4XAi57iOAkhVlp2+N0k7fOLsPSsoI u7KPgK/IwKObgrP9nfTuGCHrzws/6zzUzDoD/uXtzq079rJw5KJlQsuxkVmOU5DcrdSL PNZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cmpxchg-org.20150623.gappssmtp.com header.s=20150623 header.b=07Kj4DIq; 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=cmpxchg.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q5si13478062pgb.245.2018.12.18.09.31.18; Tue, 18 Dec 2018 09:31:45 -0800 (PST) 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; dkim=pass header.i=@cmpxchg-org.20150623.gappssmtp.com header.s=20150623 header.b=07Kj4DIq; 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=cmpxchg.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727267AbeLRRaD (ORCPT + 99 others); Tue, 18 Dec 2018 12:30:03 -0500 Received: from mail-yw1-f65.google.com ([209.85.161.65]:35208 "EHLO mail-yw1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726972AbeLRRaD (ORCPT ); Tue, 18 Dec 2018 12:30:03 -0500 Received: by mail-yw1-f65.google.com with SMTP id h32so7006740ywk.2 for ; Tue, 18 Dec 2018 09:30:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=gUey7Zbt0/b42GYcDqdXluKToQHKpjhH7c7i9g2qAPQ=; b=07Kj4DIqpm3qGJrMz5nve9A4ZGGKM2wV5SM0fLcyYiPgFD383RDtI8GCbLnKYpyJoZ q5M2bWJ3BpkxaIxeWrO5JRbJWvzXmWeeVWkWgOqzfCJRoaatMVkheQb6JRb4hQ6o2RCj riUiEFXdQNyx3l7nlOT0N+p3h2zjL97Gekt3+IHb/HgCJWBQAiM0kXdlWRgrrWU2bxyC tyDnlJcu86Ue/BYguoXWsyZIbmRCO7foD9F/e3bn4JOquWM1/Q1nN68kk3vLxvbEMYbq qfpfNF94PtsWNp+xoBJJfF6BBd4AEZijMnkieXM6lzH+GWo0q3OGRSyPrEIoxKG2jCba ShTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=gUey7Zbt0/b42GYcDqdXluKToQHKpjhH7c7i9g2qAPQ=; b=o90eYVZd4FBRyx/s+zAJOM0rU3xMvWykBayrF6aDaCftFwQaKQvXqia/qenPhYC+HS iTloUvTBdI/i/DzLWLiJ2Mvc9PmT+54i92MAP8hHY4Mt8bMsOBnggsnXm0Io0vW2Wqs0 +3HBLSsn8GcFeCR8vfERkGNGeVVZi6X7T/s+TAQmJQUPy1uvohVwy32L0guui4lmJ5LQ OKywm7eib0bfb0x0ZM2YK1GnP6GRbSuXWnY7TmE59eTe+k4x8s0Uyc6ZlFzTuVkwf92Z oKUJKF0Bsj8ddChLszsquXHx3G7qLci6qPciLZjJTstn2T72o/vspV3RRNxIddswRApK KtfA== X-Gm-Message-State: AA+aEWaRCwzd1RGCRX/bC/aJNVwjYMYbrbUjz1rGZuFvOlv+X1I6FMVA rnUyE8a7SMgk6Ie7I09FV34Cdw== X-Received: by 2002:a81:29cc:: with SMTP id p195mr19043540ywp.407.1545154202149; Tue, 18 Dec 2018 09:30:02 -0800 (PST) Received: from localhost ([2620:10d:c091:200::4:4329]) by smtp.gmail.com with ESMTPSA id n10sm3803576ywc.48.2018.12.18.09.30.01 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 18 Dec 2018 09:30:01 -0800 (PST) Date: Tue, 18 Dec 2018 12:30:00 -0500 From: Johannes Weiner To: Peter Zijlstra Cc: Suren Baghdasaryan , Greg Kroah-Hartman , Tejun Heo , lizefan@huawei.com, axboe@kernel.dk, dennis@kernel.org, Dennis Zhou , Ingo Molnar , Andrew Morton , Jonathan Corbet , cgroups@vger.kernel.org, linux-mm , linux-doc@vger.kernel.org, LKML , kernel-team@android.com Subject: Re: [PATCH 6/6] psi: introduce psi monitor Message-ID: <20181218173000.GA4733@cmpxchg.org> References: <20181214171508.7791-1-surenb@google.com> <20181214171508.7791-7-surenb@google.com> <20181217162223.GD2218@hirez.programming.kicks-ass.net> <20181218104622.GB15430@hirez.programming.kicks-ass.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181218104622.GB15430@hirez.programming.kicks-ass.net> User-Agent: Mutt/1.11.1 (2018-12-01) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Dec 18, 2018 at 11:46:22AM +0100, Peter Zijlstra wrote: > On Mon, Dec 17, 2018 at 05:21:05PM -0800, Suren Baghdasaryan wrote: > > On Mon, Dec 17, 2018 at 8:22 AM Peter Zijlstra wrote: > > > > How well has this thing been fuzzed? Custom string parser, yay! > > > > Honestly, not much. Normal cases and some obvious corner cases. Will > > check if I can use some fuzzer to get more coverage or will write a > > script. > > I'm not thrilled about writing a custom parser, so if there is a > > better way to handle this please advise. > > The grammar seems fairly simple, something like: > > some-full = "some" | "full" ; > threshold-abs = integer ; > threshold-pct = integer, { "%" } ; > threshold = threshold-abs | threshold-pct ; > window = integer ; > trigger = some-full, space, threshold, space, window ; > > And that could even be expressed as two scanf formats: > > "%4s %u%% %u" , "%4s %u %u" > > which then gets your something like: > > char type[5]; > > if (sscanf(input, "%4s %u%% %u", &type, &pct, &window) == 3) { > // do pct thing > } else if (sscanf(intput, "%4s %u %u", &type, &thres, &window) == 3) { > // do abs thing > } else return -EFAIL; > > if (!strcmp(type, "some")) { > // some > } else if (!strcmp(type, "full")) { > // full > } else return -EFAIL; > > // do more We might want to drop the percentage notation. While it's somewhat convenient, it's also not unreasonable to ask userspace to do a simple "threshold * win / 100" themselves, and it would simplify the interface spec and the parser. Sure, psi outputs percentages, but only for fixed window sizes, so that actually saves us something, whereas this parser here needs to take a fractional anyway. The output is also in decimal notation, which is necessary for granularity. And I really don't think we want to add float parsing on top of this interface spec. So neither the convenience nor the symmetry argument are very compelling IMO. It might be better to just not go there.