From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932447AbcLLKNN (ORCPT ); Mon, 12 Dec 2016 05:13:13 -0500 Received: from mail-wm0-f48.google.com ([74.125.82.48]:34867 "EHLO mail-wm0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754174AbcLLKNM (ORCPT ); Mon, 12 Dec 2016 05:13:12 -0500 MIME-Version: 1.0 In-Reply-To: <20161123143703.GC3218@sasha-lappy> References: <1479317803-17220-1-git-send-email-alexander.levin@verizon.com> <20161123143703.GC3218@sasha-lappy> From: Dmitry Vyukov Date: Mon, 12 Dec 2016 11:12:44 +0100 Message-ID: Subject: Re: [RFC 0/3] ABI spec - verification To: "Levin, Alexander" Cc: "tglx@linutronix.de" , "scientist@fb.com" , "glider@google.com" , "andreyknvl@google.com" , "rostedt@goodmis.org" , "arnd@arndb.de" , "mathieu.desnoyers@efficios.com" , "daniel.vetter@ffwll.ch" , "linux-kernel@vger.kernel.org" , Nicholas Mc Guire Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Nov 23, 2016 at 3:36 PM, wrote: > On Mon, Nov 21, 2016 at 03:25:05PM +0100, Dmitry Vyukov wrote: >> On Wed, Nov 16, 2016 at 6:37 PM, wrote: >> > As discussed at plumbers, having a standard spec for the kernel's ABI has >> > quite a few uses and enough people wanted it to get the ball rolling. >> > >> > We agreed that it's desirable to have something that can be used from code >> > rather than just a spec on paper both for validation and allowing other users >> > (like fuzzers, userspace libraries, and various userspace tools) to build >> > on that. >> > >> > What we ended up deciding on at plumbers is: >> > >> > - I'll do a few kernel bits do demonstrate how we can validate the spec from >> > the kernel. >> > - Dmitry Vyukov will provide a way to translate syzkaller's syscall >> > documentation into something that can be easily used in the kernel and >> > userspace. >> > - Various projects will attempt to integrate it to make sure that the >> > framework works for them. >> > >> > Once those bits are done we can focus on getting the spec right, and we'll >> > have a good way to validate our work both in userspace and in the kernel. >> > >> > This patchset is a basic draft of said kernel bits. I mostly want to make >> > sure that Dmitry and myself are on the same page as to how integration will >> > look like, but also to open it to criticism and suggestions (bikeshedding). >> >> >> Looks like a good starting point! >> >> Do you have a git repo with this somewhere? I have problems applying >> the patches, seems that my gmail messed them with some weird escaping. > > I've pushed it to https://git.kernel.org/cgit/linux/kernel/git/sashal/linux.git/log/?h=abi_spec , > will try to keep it updated. Was paged out by personal matters. Now looking at your code and trying to extend it to handle more cases. >> Is the intention that these descriptions are written by hand, or >> generated from some DSL? >> I benefited from easier to write descriptions, also I changed several >> times what code generator generates without changing descriptions. >> However, an additional level of indirection in the form of code >> generator introduces own pain to maintain. So I am not too strong >> here. > > I would really to have the descriptions written in just *one* place, either > by hand the way I did in that example, or in DSL. I understand your point about > another level of indirection, but I'm afraid that if we don't force a monolithic > spec we'll end up with way more than 2 different descriptions to maintain. Yes, it absolutely must be written in just one place. What I meant is that we write DSL that is also checked into kernel tree. And then whenever the descriptions change, we also regenerate code. So that C code is 100% auto generated and never changed by hand.