public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: Tudor Ambarus <tudor.ambarus@linaro.org>
To: Jiri Slaby <jirislaby@kernel.org>,
	Sam Protsenko <semen.protsenko@linaro.org>
Cc: krzysztof.kozlowski@linaro.org, alim.akhtar@samsung.com,
	gregkh@linuxfoundation.org, linux-arm-kernel@lists.infradead.org,
	linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-serial@vger.kernel.org, andre.draszik@linaro.org,
	peter.griffin@linaro.org, kernel-team@android.com,
	willmcvicker@google.com
Subject: Re: [PATCH 17/18] tty: serial: samsung: shrink port feature flags to u8
Date: Fri, 19 Jan 2024 10:02:25 +0000	[thread overview]
Message-ID: <98b87792-4919-4152-8ccc-b8a731cdfd55@linaro.org> (raw)
In-Reply-To: <96e3d7e9-737b-484e-bc94-e95533f06ca7@kernel.org>



On 1/19/24 09:54, Jiri Slaby wrote:
> Hi,
> 
> On 19. 01. 24, 10:43, Tudor Ambarus wrote:
>>>> If using unsigned int the bitfied is combined with the previous u8
>>>> fields, whereas if using u8 the bitfield will be independently defined.
>>>> So no benefit in terms of memory footprint, it's just a cosmetic change
>>>> to align the bitfield with the previous u8 fields. Allowing u32 for
>>>> just
>>>> a bit can be misleading as one would ask itself where are the other
>>>> bits. Between a u32 bitfield and a bool a u8 bitfield seems like a good
>>>> compromise.
>>>
>>> Why? What's wrong with bool? bitfields have terrible semantics wrt
>>> atomic writes for example.
>>>
>>
>> Bool occupies a byte and if more port features will ever be added we'll
>> occupy more bytes. Here's how the structure will look like with a bool:
>>
>> struct s3c24xx_uart_info {
>>     const char  *              name;                 /*     0     8 */
>>     enum s3c24xx_port_type     type;                 /*     8     4 */
>>     unsigned int               port_type;            /*    12     4 */
>>     unsigned int               fifosize;             /*    16     4 */
>>     u32                        rx_fifomask;          /*    20     4 */
>>     u32                        rx_fifoshift;         /*    24     4 */
>>     u32                        rx_fifofull;          /*    28     4 */
>>     u32                        tx_fifomask;          /*    32     4 */
>>     u32                        tx_fifoshift;         /*    36     4 */
>>     u32                        tx_fifofull;          /*    40     4 */
>>     u32                        clksel_mask;          /*    44     4 */
>>     u32                        clksel_shift;         /*    48     4 */
>>     u32                        ucon_mask;            /*    52     4 */
>>     u8                         def_clk_sel;          /*    56     1 */
>>     u8                         num_clks;             /*    57     1 */
>>     u8                         iotype;               /*    58     1 */
>>     bool                       has_divslot;          /*    59     1 */
>>
>>     /* size: 64, cachelines: 1, members: 17 */
>>     /* padding: 4 */
>> };
>>
>> What's your preference?
> 
> bool :).
> 
I'm fine with a bool too as since the introduction of this driver we
have just this flag, it's unlikey to have 4 more soon to bypass the
first cacheline. Will change to bool.

Cheers,
ta

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2024-01-19 10:03 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-10 10:20 [PATCH 00/18] serial: samsung: gs101 updates and winter cleanup Tudor Ambarus
2024-01-10 10:20 ` [PATCH 01/18] tty: serial: samsung: prepare for different IO types Tudor Ambarus
2024-01-16 18:12   ` Sam Protsenko
2024-01-10 10:20 ` [PATCH 02/18] tty: serial: samsung: set UPIO_MEM32 iotype for gs101 Tudor Ambarus
2024-01-16 18:12   ` Sam Protsenko
2024-01-10 10:20 ` [PATCH 03/18] tty: serial: samsung: add gs101 earlycon support Tudor Ambarus
2024-01-16 18:14   ` Sam Protsenko
2024-01-10 10:20 ` [PATCH 04/18] tty: serial: samsung: sort headers alphabetically Tudor Ambarus
2024-01-16 18:13   ` Sam Protsenko
2024-01-10 10:20 ` [PATCH 05/18] tty: serial: samsung: explicitly include <linux/types.h> Tudor Ambarus
2024-01-16 18:14   ` Sam Protsenko
2024-01-10 10:20 ` [PATCH 06/18] tty: serial: samsung: use u32 for register interactions Tudor Ambarus
2024-01-16 18:17   ` Sam Protsenko
2024-01-10 10:20 ` [PATCH 07/18] tty: serial: samsung: remove braces on single statement block Tudor Ambarus
2024-01-16 18:17   ` Sam Protsenko
2024-01-10 10:20 ` [PATCH 08/18] tty: serial: samsung: move open brace '{' on the next line Tudor Ambarus
2024-01-16 18:18   ` Sam Protsenko
2024-01-10 10:20 ` [PATCH 09/18] tty: serial: samsung: drop superfluous comment Tudor Ambarus
2024-01-16 18:18   ` Sam Protsenko
2024-01-10 10:20 ` [PATCH 10/18] tty: serial: samsung: make max_count unsigned int Tudor Ambarus
2024-01-16 18:21   ` Sam Protsenko
2024-01-17 15:21     ` Tudor Ambarus
2024-01-17 15:38       ` André Draszik
2024-01-17 15:54         ` Tudor Ambarus
2024-01-17 16:27           ` Sam Protsenko
2024-01-17 16:26         ` Sam Protsenko
2024-01-10 10:20 ` [PATCH 11/18] tty: serial: samsung: don't compare with zero an if (bitwise expression) Tudor Ambarus
2024-01-16 18:38   ` Sam Protsenko
2024-01-17 15:41     ` Tudor Ambarus
2024-01-17 16:24       ` Sam Protsenko
2024-01-10 10:20 ` [PATCH 12/18] tty: serial: samsung: use TIOCSER_TEMT for tx_empty() Tudor Ambarus
2024-01-16 18:46   ` Sam Protsenko
2024-01-10 10:20 ` [PATCH 13/18] tty: serial: samsung: return bool for s3c24xx_serial_txempty_nofifo() Tudor Ambarus
2024-01-16 18:52   ` Sam Protsenko
2024-01-10 10:20 ` [PATCH 14/18] tty: serial: samsung: return bool for s3c24xx_serial_console_txrdy() Tudor Ambarus
2024-01-16 18:54   ` Sam Protsenko
2024-01-17 15:57     ` Tudor Ambarus
2024-01-10 10:20 ` [PATCH 15/18] tty: serial: samsung: change return type for s3c24xx_serial_rx_fifocnt() Tudor Ambarus
2024-01-16 18:58   ` Sam Protsenko
2024-01-10 10:21 ` [PATCH 16/18] tty: serial: samsung: shrink the clock selection to 8 clocks Tudor Ambarus
2024-01-16 19:09   ` Sam Protsenko
2024-01-17 16:26     ` Tudor Ambarus
2024-01-17 16:31       ` Sam Protsenko
2024-01-10 10:21 ` [PATCH 17/18] tty: serial: samsung: shrink port feature flags to u8 Tudor Ambarus
2024-01-16 19:03   ` Sam Protsenko
2024-01-19  8:56     ` Tudor Ambarus
2024-01-19  9:07       ` Jiri Slaby
2024-01-19  9:43         ` Tudor Ambarus
2024-01-19  9:54           ` Jiri Slaby
2024-01-19 10:02             ` Tudor Ambarus [this message]
2024-01-10 10:21 ` [PATCH 18/18] tty: serial: samsung: shrink memory footprint of ``struct s3c24xx_uart_info`` Tudor Ambarus
2024-01-16 19:14   ` Sam Protsenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=98b87792-4919-4152-8ccc-b8a731cdfd55@linaro.org \
    --to=tudor.ambarus@linaro.org \
    --cc=alim.akhtar@samsung.com \
    --cc=andre.draszik@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jirislaby@kernel.org \
    --cc=kernel-team@android.com \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=peter.griffin@linaro.org \
    --cc=semen.protsenko@linaro.org \
    --cc=willmcvicker@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox