Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp68378rwr; Tue, 25 Apr 2023 17:48:43 -0700 (PDT) X-Google-Smtp-Source: AKy350bD1r0UCBKDRJLGi0/Sz8nzWedpVJ5xT7EFHHyc067Lj+BWNZpIC+S33pMqJckods0ogp7k X-Received: by 2002:a05:6a20:1453:b0:ed:1355:f88a with SMTP id a19-20020a056a20145300b000ed1355f88amr25702422pzi.46.1682470123164; Tue, 25 Apr 2023 17:48:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682470123; cv=none; d=google.com; s=arc-20160816; b=xE+SYf2YyvrvHCFSKmoNIhh35qHr/3jdfT27g/HTIAQK5uUlBVKVdFPcl+u6ntxFD9 9O1dS9s2N4Ebjes8YsEdbF0Cx/tkOrUlV5++fHlSuXbA5isQRqNeKa2FoVE2BCgBZhef WvylywMInMUnJSWfWAERx0cr69UpL380oR3Ul1DJvJ8lTRg7oK7+WsSqZlYpB5twrgD4 WNoRk0H0d7qztZRrWoetZTtgYCNrNMK8TPHX/d9++kQMNabumrlZ3ekDQ1l/ocaSeh6V R3ahzhKGOgP9f9Tyd9o6ECON4aiB9hoSgNPuekY7tpQwAjVAcyBp1NORzg3peqzcBq/P Vnlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=r8n1EpbS+M0gBO0oAO5r0wIJz+YhGa4oMT+pcaVC/70=; b=cMgqXpcm24KQuIqIWTwatIT3SSKUPW8Y5d7rxyaJM5d4dbP3rgjlEfOFzj9O3bz97V 1QjBGa4xMLGmJyQKfgpCq89jmOSYAGRilm1WEYxnsZp/sJ+lENc+fvrjwuurVloL7pkU iQre1E/tOiwZJZw8M4TtrsmpF0f2+MK+bc8fHGYlaE6AdMCkYZd6BQr6B+H5Y5GasguG uUL/BAj+XW1wZiI2MTgbHOm+FFaEUAh7c214oQtE7jH508Eclf2t+Pv02hHuN6QuTQWV jT+sTGCjHqDYS4EdFk64DrthXvX29R04KD/mV+ISHxcyYGgOYrM7zuutMtbQ2atNG2M+ uAGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=YREWwOIE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z11-20020a6552cb000000b005137bf7e2d3si15192790pgp.582.2023.04.25.17.48.31; Tue, 25 Apr 2023 17:48:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=YREWwOIE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238434AbjDZAcG (ORCPT + 99 others); Tue, 25 Apr 2023 20:32:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47610 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236413AbjDZAcE (ORCPT ); Tue, 25 Apr 2023 20:32:04 -0400 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 18BE2B236; Tue, 25 Apr 2023 17:32:03 -0700 (PDT) Received: from pendragon.ideasonboard.com (133-32-181-51.west.xps.vectant.ne.jp [133.32.181.51]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id DA23A2CF; Wed, 26 Apr 2023 02:31:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1682469108; bh=J0H/I3MHC57rloZ2Y3S5PUrNrgy8f/8EJ9VwOYm2S10=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=YREWwOIE7IwcRZFehUJe5hzIshER8rKPV/zBWdvqT8YRPhPwcwWEK2/kKpnYy/oPD 0MHQFIDqEDkHAmxevwQ4vwN3JYfCvefeSzL2eHvLmjPQmgcbaTJi3A9ygbFDxmUWXd VfqZrWUcKvyUZZRdADk7kX7VfKWQ/Rs73vhD6Fu8= Date: Wed, 26 Apr 2023 03:32:10 +0300 From: Laurent Pinchart To: Miguel Ojeda Cc: Hans Verkuil , Daniel Almeida , wedsonaf@gmail.com, ojeda@kernel.org, mchehab@kernel.org, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, kernel@collabora.com Subject: Re: [PATCH 0/6] Initial Rust V4L2 support Message-ID: <20230426003210.GA31260@pendragon.ideasonboard.com> References: <20230406215615.122099-1-daniel.almeida@collabora.com> <136035a4-26df-1c14-e51e-406b4ee5fe33@xs4all.nl> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Apr 11, 2023 at 02:02:17PM +0200, Miguel Ojeda wrote: > On Tue, Apr 11, 2023 at 9:51 AM Hans Verkuil wrote: > > > > One of my main concerns here is time: as subsystem maintainers we can barely > > keep up with all the incoming patches. Introducing support for a new language > > would add only more pressure. Even though these are mainly bindings (as I > > understand it), this would still require that every change to a C kAPI is > > duplicated in rust, requiring someone to do that work, and have maintainers > > with enough rust knowledge to verify it. Another issue is that the V4L2 subsystem is plagued with lifetime management problems. I don't think rust bindings could be safely written for the MC and V4L2 subdev in-kernel APIs at the moment for instance. Sakari recently attempted to fix some of those issues (again), see [1]. Progress is slow on this front because V4L2 is generally understaffed. [1] https://lore.kernel.org//20230201214535.347075-1-sakari.ailus@linux.intel.com Now, I hope that mentioning "lifetime management problems" will be enough to nerd-snipe a rust enthusiast or two to help fix the C code in order to implement proper rust bindings on top ;-) > Indeed, that is one of the main costs. > > One potential solution is to have somebody step up as the maintainer > of the Rust side (e.g. the author of the abstractions). That would certainly be a required step, but I don't think it would be enough. On good days I see the media subsystem as barely able to cope with the current load, on bad days it feels it's completely collapsing. We have homework to do when it comes to maintenance for the media subsystem, we're doing *really* badly at the moment regarding community management and attracting (and retaining) new core contributors. This is a topic I really want to discuss face to face during the media workshop in Prague (and I know that many people are looking forward to that discussion). > Of course, that will not make the work go to zero, since there still > needs to be some degree of communication even if the new maintainer > does all the Rust side work, but it may make it feasible, especially > if the abstracted parts of the C API do not change too frequently. > > It is also an opportunity for existing maintainers to see how the Rust > side would work meanwhile the work gets done, and potentially a chance > to get a new maintainer involved with the whole subsystem in the > future. > > Some subsystems may want to give that maintainer a different > `MAINTAINERS` entry, e.g. as a child subsystem that sends PRs to the > main one and may be marked as "experimental". This is also a way to > see how the new abstractions work or not, giving maintainers more time > to decide whether to commit to a Rust side or not. > > I don't mean to say it would be doable for the media subsystem, but > please consider it. -- Regards, Laurent Pinchart