Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp873647imm; Wed, 8 Aug 2018 07:11:19 -0700 (PDT) X-Google-Smtp-Source: AA+uWPwOXX97QNyojqjEXt55e2DQTYFf0ysMg2pmk8LKpo4x5XBdnS502o5MHEvZ8cpcYovq/InX X-Received: by 2002:a63:c00b:: with SMTP id h11-v6mr2689069pgg.279.1533737479520; Wed, 08 Aug 2018 07:11:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533737479; cv=none; d=google.com; s=arc-20160816; b=Gbdatvq7269DjcwWXh399fBGLRsrGRBsg+2A2HZtgnhRnxEjaKfQngURe/OTTXL5Jj 74tIh4jaFMCWAhNgkz+mAb3+vdlc9EeZhBIux0yICFlmEHRmmoA6HBfv2+ffk3ylGvNU 9pcZ8X2jg01S4oH6NbIkvgV4D2PvOiERgR2QyvzjvOFCn3j+pxuZGABK+nEXlFtu+9nW ommhK387or6jY6sb5/gwwoGcKK5nzutC0gBsQALEzpPfsGuGcvIDqdmYP6PDMKsAv5p0 hDcFnf5jUmuJS1DXTtKfQP9aRHl3g/0aZ6u9I2ezAA9IbyWspvwBueRgdSp+GRNYG4qF r7dA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=3K57tYUk11S7OC3pkkE7sadcHDy40WLoqhGzTiZe7Ps=; b=MZQAQqYjf4V568oMtz4QHq4pzNefP5TbQyqhFbw89t1RALvjGpSafSfyyabZKc8Xee 388I0fB+GoPSYl/HorSm0brWkdW3NTqRN38KNzh6iyP8lCjXK+8p0bcEcI7RVkgII/rS KT2tMR3KQJF89k+RQNZm9wzzVirjuDvqrcaG5Y/i86XnW7kDqCPrEE28FyXxZg5Qt00h DyUDR4dNMjcHPlcR6TR8RERCW5UODX05UF1M2x9dT68D5ifNp/FcOp1JpWrKVZZ34MtF DQgJqIjoMl3B0pl9Laa1+Yhg0+lgsJpdX+UgeChRJd9LXBq6oBVJvG/W25tNxsknOBIq 9asA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=eNdOrtOv; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z18-v6si4485522pfl.209.2018.08.08.07.11.05; Wed, 08 Aug 2018 07:11:19 -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=pass header.i=@gmail.com header.s=20161025 header.b=eNdOrtOv; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727394AbeHHQaE (ORCPT + 99 others); Wed, 8 Aug 2018 12:30:04 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:44790 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727050AbeHHQaD (ORCPT ); Wed, 8 Aug 2018 12:30:03 -0400 Received: by mail-ed1-f68.google.com with SMTP id f23-v6so1311354edr.11; Wed, 08 Aug 2018 07:10:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=3K57tYUk11S7OC3pkkE7sadcHDy40WLoqhGzTiZe7Ps=; b=eNdOrtOvpXLVVDySagre4DfK80L1aKe0PxgnZW3dPaJ0p6mJPCRzh/p40/JJ01MLJp jTF90DvDFkZ/TdSD+BUrNPMIOy20T3OR2NyFe4adOPuwlCgOrQEaTd7b2UYnZ+s1K4K7 VppEAWV1ikZSibepRFo51czw9qsXLHgUiEd3e0wdIf373G7RfYUFcoFwBnO2x+fA3bd3 Wa9MJ8TvrLQjx3FRl1ZKg/eHlogSZ8s/enAeauVuLxiBWi7l46H9HkBdbNdQjAC3nyfR Br/Ys6x3C/rLIc4J+BDn59ox5/zOb44cxNpQMXfSYK/KwW/Fii6w1Z8etKqwxF9B4RHf gPig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=3K57tYUk11S7OC3pkkE7sadcHDy40WLoqhGzTiZe7Ps=; b=j6OdRn7douUv0/KaRXfrkndOItU8APAbXKWjLBSxJNFmDjZ2sZ2N0XkMGA4Sybdgqh 5NvAAp8TRctuA8rRj+RMz/ddWksJB29pjm/ck0CWQRSzqcmJEG+83qitEMf3RVes74mY qv9OceOAuGb7EIDQ4fLGWluV6cnT7HkZdVVEX7KTzJZSV9kR9ijTK3FQQnvxZGFhEx4j x9rQKj/e46c/2xJVc+PJkvchNQxfjqJf2bWgZ9HKHGKjUrD512WSyQR3osQY/bHFI5jJ oTKw1OcFHkrrTDE+Ax5ewpFeq9cBfwfnB2BtVc3lNluwggKa9v+CnwwTQCbjV5q+r4kG 5lSg== X-Gm-Message-State: AOUpUlECxGFLvowwtAEYql7LaIxQaav/Njt9UKq8KZrxeacNp5DYNmse 6Or8iwxwIImvvNfz1UcXVWYJqNi04usunTL0X7M= X-Received: by 2002:a50:8921:: with SMTP id e30-v6mr3474321ede.213.1533737411941; Wed, 08 Aug 2018 07:10:11 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a50:f68b:0:0:0:0:0 with HTTP; Wed, 8 Aug 2018 07:10:11 -0700 (PDT) In-Reply-To: References: <20180702114033.15654-1-mperttunen@nvidia.com> <20180702114033.15654-4-mperttunen@nvidia.com> <907bac36-0c54-8f38-0f5e-f59196d414c6@kapsi.fi> From: Jassi Brar Date: Wed, 8 Aug 2018 19:40:11 +0530 Message-ID: Subject: Re: [PATCH v3 3/8] mailbox: Add transmit done by blocking option To: Mikko Perttunen Cc: Mikko Perttunen , Greg KH , Thierry Reding , Jon Hunter , Devicetree List , linux-serial@vger.kernel.org, linux-tegra@vger.kernel.org, <", linux-arm-kernel"@lists.infradead.org>, ", linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, srv_heupstream" , srv_heupstream , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Aug 8, 2018 at 5:08 PM, Mikko Perttunen wrote: > > > On 04.08.2018 13:45, Mikko Perttunen wrote: >> >> On 08/03/2018 03:54 PM, Jassi Brar wrote: >>> >>> On Mon, Jul 2, 2018 at 5:10 PM, Mikko Perttunen >>> wrote: >>>> >>>> Add a new TXDONE option, TXDONE_BY_BLOCK. With this option, the >>>> send_data function of the mailbox driver is expected to block until >>>> the message has been sent. The new option is used with the Tegra >>>> Combined UART driver to minimize unnecessary overhead when transmitting >>>> data. >>>> >>> 1) TXDONE_BY_BLOCK flag :- >>> Have you tried setting the flag mbox_chan->mbox_client->tx_block >>> ? >> >> >> No - I suppose I should have done that. I'm a bit concerned about overhead >> as send_data may be called thousands of times per second, so I tried to make >> it as close as possible to the downstream driver that just pokes the mailbox >> register directly. > > > I tried using polling in the mailbox framework. Some printing is done from > atomic context so it seems tx_block cannot be used - > wait_for_completion_timeout understandably does not work in atomic context. > I also tried without tx_block, in which case I got some horribly garbled > output, but "Try increasing MBOX_TX_QUEUE_LEN" was readable there. > > Any opinions? > The problems arise because your hardware (SM) supports TXDONE_BY_POLL, but your client drives it by TXDONE_BY_ACK because the older DB channels are so. Please populate SM channels as a separate controller than DB. The DB controller, as is, run by ACK method. The SM controller should be run by polling, i.e, set txdone_poll = true and the poll period small enough. The virtual tty client driver should be able to safely set tx_block from appropriate context.