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 09:43:25 +0000 [thread overview]
Message-ID: <842d36c7-9452-431f-95c4-ff114484d201@linaro.org> (raw)
In-Reply-To: <8f3f85d0-866e-4e5a-8177-05c26c08b278@kernel.org>
On 1/19/24 09:07, Jiri Slaby wrote:
Hi, Jiri!
> On 19. 01. 24, 9:56, Tudor Ambarus wrote:
>>
>>
>> On 1/16/24 19:03, Sam Protsenko wrote:
>>> On Wed, Jan 10, 2024 at 4:25 AM Tudor Ambarus
>>> <tudor.ambarus@linaro.org> wrote:
>>>>
>>>> There's a single flag defined as of now. Shrink the feature flags to u8
>>>> and aim for a better memory footprint for ``struct s3c24xx_uart_info``.
>>>>
>>>> Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
>>>> ---
>>>> drivers/tty/serial/samsung_tty.c | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/tty/serial/samsung_tty.c
>>>> b/drivers/tty/serial/samsung_tty.c
>>>> index 5df2bcebf9fb..598d9fe7a492 100644
>>>> --- a/drivers/tty/serial/samsung_tty.c
>>>> +++ b/drivers/tty/serial/samsung_tty.c
>>>> @@ -90,7 +90,7 @@ struct s3c24xx_uart_info {
>>>>
>>>> /* uart port features */
>>>>
>>>> - unsigned int has_divslot:1;
>>>> + u8 has_divslot:1;
>>>
>>> But that's already a bit field. Why does it matter which type it is?
>>>
>>
>> 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?
Thanks,
ta
next prev parent reply other threads:[~2024-01-19 9:43 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 [this message]
2024-01-19 9:54 ` Jiri Slaby
2024-01-19 10:02 ` Tudor Ambarus
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=842d36c7-9452-431f-95c4-ff114484d201@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
all inboxes | Powered by JetHome®