From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 21776C433F5 for ; Sun, 9 Oct 2022 21:10:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231484AbiJIVKm (ORCPT ); Sun, 9 Oct 2022 17:10:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36202 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231225AbiJIVKQ (ORCPT ); Sun, 9 Oct 2022 17:10:16 -0400 Received: from alexa-out-sd-02.qualcomm.com (alexa-out-sd-02.qualcomm.com [199.106.114.39]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9241238697; Sun, 9 Oct 2022 14:04:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1665349471; x=1696885471; h=message-id:date:mime-version:from:subject:to:cc: references:in-reply-to:content-transfer-encoding; bh=YEYGFGEhRUF1GvIBQpFpZ4vv7/I8t1gr51UudbUv544=; b=Bs7jzHJRIvuHHpNEGGD1xeqCUt9TOTEHsqX+75/607+77Vnmzr5KzyMF 8JJmog56YXTl1O9mnCwoFOykHY6lmiYkCbUT9ErTAspZbZtOUngjoyn8V 1ZszqJJKBBsdQ+5uA2j+ZhKp89G/9qgZ0HRvLYOuCKV6zxeqhomYFMXIk 4=; Received: from unknown (HELO ironmsg04-sd.qualcomm.com) ([10.53.140.144]) by alexa-out-sd-02.qualcomm.com with ESMTP; 09 Oct 2022 13:59:23 -0700 X-QCInternal: smtphost Received: from nasanex01b.na.qualcomm.com ([10.46.141.250]) by ironmsg04-sd.qualcomm.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2022 13:59:23 -0700 Received: from [10.110.10.240] (10.80.80.8) by nasanex01b.na.qualcomm.com (10.46.141.250) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.29; Sun, 9 Oct 2022 13:59:22 -0700 Message-ID: <615493a8-449d-b105-709e-0642dfb5359b@quicinc.com> Date: Sun, 9 Oct 2022 13:59:21 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 From: Elliot Berman Subject: Re: [PATCH v4 14/14] tty: gunyah: Add tty console driver for RM Console Services To: Greg Kroah-Hartman , Jiri Slaby CC: Bjorn Andersson , Murali Nalajala , Trilok Soni , "Srivatsa Vaddagiri" , Carl van Schaik , Prakruthi Deepak Heragu , Andy Gross , Dmitry Baryshkov , Jassi Brar , , Mark Rutland , Lorenzo Pieralisi , Sudeep Holla , Marc Zyngier , Rob Herring , Krzysztof Kozlowski , Jonathan Corbet , "Will Deacon" , Catalin Marinas , "Arnd Bergmann" , , , , References: <20220928195633.2348848-1-quic_eberman@quicinc.com> <20220928195633.2348848-15-quic_eberman@quicinc.com> <14d0ff9f-60f3-71cc-ea42-ceee389298ac@quicinc.com> Content-Language: en-US In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01b.na.qualcomm.com (10.46.141.250) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/7/2022 12:40 AM, Greg Kroah-Hartman wrote: > On Thu, Oct 06, 2022 at 10:59:51PM -0700, Elliot Berman wrote: >> >> "GH" is the shorthand we've been using for "Gunyah". I didn't find >> documentation for dynamically assigned char devices, but if it exists, I can >> add entry for ttyGH. > > Why use a new name at all? Why not stick with the existing tty names > and device numbers? > I can use hvc framework, although driver-level buffering is needed on both the get_chars/put_chars paths because: - get_chars wants to poll for characters, but Gunyah will push characters to Linux - put_chars can be called in atomic context in the printk console path. Gunyah RM calls can sleep, so we add to buffer and queue work to write the characters. I also chose to use new tty driver because the Gunyah hypervisor call to open the console (gh_rm_console_open) can only be done after starting the VM. Gunyah will only forward characters sent from the other VM to Linux after the gh_rm_console_open call is made. When launching a VM, users would want to open console before VM starts so they can get startup messages from the VM. I planned to use the carrier_raised() to hold tty_port_block_until_ready until the VM is started and the gh_rm_console_open() happens. Thanks, Elliot