Received: by 10.213.65.68 with SMTP id h4csp234192imn; Tue, 20 Mar 2018 02:01:25 -0700 (PDT) X-Google-Smtp-Source: AG47ELuanelnK0jbNRqlkgP0CSeiOwOCBMF4CgaWWroOgsiLjkP0OpuyIU615RH4+1APQLMae0BE X-Received: by 10.101.86.141 with SMTP id v13mr4595778pgs.353.1521536485125; Tue, 20 Mar 2018 02:01:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521536485; cv=none; d=google.com; s=arc-20160816; b=YiuEYmXkA5JxA2X9waXKtZAJyYPlICz7JHwz5f8d6Zd1zeKEHo6ToTRtENerSPJ0Oh r/VfjkkRKhsLa8xyGxLpmak/5iTOAtjomyNTechIXc1UOgtDEsVE0KVSSYxuLvmjhNoJ ymzx+ycFTie0Cn70KprNUTwXTCdZAb4OZDdZUfAeIk1Gaz199Nc9J3R5+z5Atg6T0Y0B U3s2wOkHQmfSKxnoa/pe9D8C1E5Bu0vyniNYiO+PeTlU58EaO8d4H+Hmo5tsRbLSNsbC CbBlST2phrgLI9ifUUMPOoZm0ufZOBILEdQfolmrL/YKJfl2Li4MXtB/z80zbgENysZ+ aZpw== 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:arc-authentication-results; bh=dfawECWtk1hdp40aEX5Sp7Cd/Au50B++H/6qwEyRzrM=; b=fpwQyzzCPksFYzDNyZRCcH+XoDJvhyCgWPNcS3rvHPA8cU2zbAv72MmNK6n8LIUpUe NkWaNSQ4KQMzXoip5OiptVRxCusZJRkZOjoh+z8JJURE2NZ7lPgkS3fNRfl9TzLuF7n3 gdoXu+vvf62fEnyQHPetuszTEOR+Rp5CZ4zhwgxd3fdLo/4P75gAHtIzjfyofPINZA/P pIJ0Xk7+Xw+RV1G71vHl/3CZE2R2TG3wQrzKXNHRdZ3i/SdX/DNVtU7DMg4wFuxJsqyy kNmYOVo8wbMxv0+mjhkfLAeZEWqQva5zqZk2jAvJH4dZ8cQL5t2NUH0wydTClGoyoEl9 /0Nw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=T58ebr48; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g23-v6si1099877plo.697.2018.03.20.02.01.07; Tue, 20 Mar 2018 02:01:25 -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; dkim=fail header.i=@gmail.com header.s=20161025 header.b=T58ebr48; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752439AbeCTI7l (ORCPT + 99 others); Tue, 20 Mar 2018 04:59:41 -0400 Received: from mail-wm0-f66.google.com ([74.125.82.66]:52095 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752138AbeCTI7g (ORCPT ); Tue, 20 Mar 2018 04:59:36 -0400 Received: by mail-wm0-f66.google.com with SMTP id h21so1805264wmd.1; Tue, 20 Mar 2018 01:59:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=dfawECWtk1hdp40aEX5Sp7Cd/Au50B++H/6qwEyRzrM=; b=T58ebr48J/FRV004s6+aro78J4goGbk87R85ZgRm0EdGzjk8pGkH0j8THcLW0mIpHz Ue4u1my/kf5AiMMx62m1YCEl6DVfxdHBilOyZsr/gju6DarTdXELnPTZKofN0XCcJwvD 2KIzfFiFNUEBsaHZkBol5tdBTwHAC1vzV9mh9DIAiBn8osEcwSaykf+ANvJN/uw0XJm9 1QDEZITUDiJFXtPnhw4cHiH23deqgCkgcuYTnJySbifovpOZgDUosbFnuPl7GQnLDHgS JUGoqii+e2IGWR9mhq8bdNcKN20cq/enHHNlULUlKZxwRC3XEoj8agDicze/DWUzIXIB FulQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to:user-agent; bh=dfawECWtk1hdp40aEX5Sp7Cd/Au50B++H/6qwEyRzrM=; b=B87ZMvn2hlJ6eGsUDFwJGs2rHar9gCouPaHt9pkY8Bbe4oJrdMLAoygMGOxGFSoaU5 9afA89btqAON/EzNEBPnMfxMRhoNaisZcX42bXxoXQtU4OdXiZVEOYu9nX/k6tensZ16 8Vm+MzQR1rz32Gzd13C+gpbSUiQqvf2nuWEdC1j+7wg86kPd0lwpU/tfnc3ll29tgqow eC/mCg8HKlfD7lXROZS+6eaKp0FHrVYt7DyyCXBBVtrVGW2n1Fg36bMaSf49NgeIQW8Q mWVQKgWGOFoGf9+jYaoIifzjVR+fNe2LUi3DGNxOvYANIS5vPYT1J0AcPO6Ol0Eq38Nr mmQQ== X-Gm-Message-State: AElRT7EVUkpDd9enG1bKZPFe9N6G09rJ7Crc6vzOssysGwdSFfzS/Zm+ ZQ7cbR9g8C+NiE6E0gtQ74M= X-Received: by 10.28.172.196 with SMTP id v187mr1475511wme.69.1521536375149; Tue, 20 Mar 2018 01:59:35 -0700 (PDT) Received: from gmail.com (2E8B0CD5.catv.pool.telekom.hu. [46.139.12.213]) by smtp.gmail.com with ESMTPSA id b8sm922278wrf.29.2018.03.20.01.59.33 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 20 Mar 2018 01:59:34 -0700 (PDT) Date: Tue, 20 Mar 2018 09:59:32 +0100 From: Ingo Molnar To: Al Viro Cc: Linus Torvalds , Dominik Brodowski , Linux Kernel Mailing List , Arnd Bergmann , linux-arch , Ralf Baechle , James Hogan , linux-mips , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , ppc-dev , Martin Schwidefsky , Heiko Carstens , linux-s390 , "David S . Miller" , sparclinux@vger.kernel.org, Ingo Molnar , Jiri Slaby , the arch/x86 maintainers Subject: Re: [RFC PATCH 4/6] mm: provide generic compat_sys_readahead() implementation Message-ID: <20180320085932.xnwkpiz5gpegnw5d@gmail.com> References: <20180318161056.5377-1-linux@dominikbrodowski.net> <20180318161056.5377-5-linux@dominikbrodowski.net> <20180318174014.GR30522@ZenIV.linux.org.uk> <20180318181848.GU30522@ZenIV.linux.org.uk> <20180319042300.GW30522@ZenIV.linux.org.uk> <20180319092920.tbh2xwkruegshzqe@gmail.com> <20180319232342.GX30522@ZenIV.linux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180319232342.GX30522@ZenIV.linux.org.uk> User-Agent: NeoMutt/20170609 (1.8.3) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Al Viro wrote: > > For example this attempt at creating a new system call: > > > > SYSCALL_DEFINE3(moron, int, fd, loff_t, offset, size_t, count) > > > > ... would translate into something like: > > > > .name = "moron", .pattern = "WWW", .type = "int", .size = 4, > > .name = NULL, .type = "loff_t", .size = 8, > > .name = NULL, .type = "size_t", .size = 4, > > .name = NULL, .type = NULL, .size = 0, /* end of parameter list */ > > > > i.e. "WDW". The build-time constraint checker could then warn about: > > > > # error: System call "moron" uses invalid 'WWW' argument mapping for a 'WDW' sequence > > # please avoid long-long arguments or use 'SYSCALL_DEFINE3_WDW()' instead > > ... if you do 32bit build. Yeah - but the checking tool could do a 32-bit sizing of the types and thus the checks would work on all arches and on all bitness settings. I don't think doing part of this in CPP is a good idea: - It won't be able to do the full range of checks - Wrappers should IMHO be trivial and open coded as much as possible - not hidden inside several layers of macros. - There should be a penalty for newly introduced, badly designed system call ABIs, while most CPP variants I can think of will just make bad but solvable decisions palatable, AFAICS. I.e. I think the way out of this would be two steps: 1) for new system calls: hard-enforce the highest quality at the development stage and hard-reject crap. No new 6-parameter system calls or badly ordered arguments. The tool would also check new extensions to existing system calls, i.e. no more "add a crappy 4th argument to an existing system call that works on x86 but hurts MIPS". 2) for old legacies: cleanly open code all our existing legacies and weird wrappers. No new muck will be added to it so the line count does not matter. ... is there anything I'm missing? Thanks, Ingo