Re: [PATCH][next] media: rkisp1: make a few const arrays static

From: Alexander Stein
Date: Fri Jan 06 2023 - 02:30:42 EST


Hi Ian,

Am Donnerstag, 5. Januar 2023, 19:44:03 CET schrieb Colin Ian King:
> Don't populate the const arrays on the stack, instead make them
> static. Also makes the object code smaller.

While I don't dislike this change itself, are you sure about the size change?

bloat-o-meter shows an overall increase:
> ./scripts/bloat-o-meter /tmp/rkisp1-capture_old.o
> /tmp/rkisp1-capture_new.o
> add/remove: 3/0 grow/shrink: 1/2 up/down: 256/-116 (140)
> Function old new delta
> rkisp1_try_fmt_vid_cap_mplane 56 280 +224
> dev_names - 16 +16
> max_widths - 8 +8
> max_heights - 8 +8
> rkisp1_try_fmt 356 304 -52
> rkisp1_register_capture 548 484 -64
> Total: Before=12333, After=12473, chg +1.14%

To be honest I don't know why GCC now inlines rkisp1_try_fmt() in
rkisp1_try_fmt_vid_cap_mplane.

Best regards,
Alexander

> Signed-off-by: Colin Ian King <colin.i.king@xxxxxxxxx>
> ---
> .../platform/rockchip/rkisp1/rkisp1-capture.c | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
> b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c index
> d4540684ea9a..d1d1fdce03e3 100644
> --- a/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
> +++ b/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c
> @@ -1131,10 +1131,12 @@ static void rkisp1_try_fmt(const struct
> rkisp1_capture *cap, const struct rkisp1_capture_config *config =
> cap->config;
> const struct rkisp1_capture_fmt_cfg *fmt;
> const struct v4l2_format_info *info;
> - const unsigned int max_widths[] = { RKISP1_RSZ_MP_SRC_MAX_WIDTH,
> -
RKISP1_RSZ_SP_SRC_MAX_WIDTH };
> - const unsigned int max_heights[] = { RKISP1_RSZ_MP_SRC_MAX_HEIGHT,
> -
RKISP1_RSZ_SP_SRC_MAX_HEIGHT};
> + static const unsigned int max_widths[] = {
> + RKISP1_RSZ_MP_SRC_MAX_WIDTH, RKISP1_RSZ_SP_SRC_MAX_WIDTH
> + };
> + static const unsigned int max_heights[] = {
> + RKISP1_RSZ_MP_SRC_MAX_HEIGHT, RKISP1_RSZ_SP_SRC_MAX_HEIGHT
> + };
>
> fmt = rkisp1_find_fmt_cfg(cap, pixm->pixelformat);
> if (!fmt) {
> @@ -1336,8 +1338,9 @@ void rkisp1_capture_devs_unregister(struct
> rkisp1_device *rkisp1)
>
> static int rkisp1_register_capture(struct rkisp1_capture *cap)
> {
> - const char * const dev_names[] = {RKISP1_MP_DEV_NAME,
> - RKISP1_SP_DEV_NAME};
> + static const char * const dev_names[] = {
> + RKISP1_MP_DEV_NAME, RKISP1_SP_DEV_NAME
> + };
> struct v4l2_device *v4l2_dev = &cap->rkisp1->v4l2_dev;
> struct video_device *vdev = &cap->vnode.vdev;
> struct rkisp1_vdev_node *node;