From ea4bcec987b509caf098c6ec2681a1f116309ab7 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Thu, 9 Jun 2022 12:38:13 -0700 Subject: hsa: allow first segments larger than 4g for proxy Type: improvement Signed-off-by: Florin Coras Change-Id: I9c502a491ff56806a2e631f7a4c18903a2e93ab2 (cherry picked from commit c2ab1bdbc73f2743979f8779c027adc04d79bf22) --- src/plugins/hs_apps/proxy.c | 17 ++++------------- src/plugins/hs_apps/proxy.h | 2 +- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/src/plugins/hs_apps/proxy.c b/src/plugins/hs_apps/proxy.c index 82d78e4c714..77c047b41a8 100644 --- a/src/plugins/hs_apps/proxy.c +++ b/src/plugins/hs_apps/proxy.c @@ -661,19 +661,16 @@ proxy_server_attach () proxy_main_t *pm = &proxy_main; u64 options[APP_OPTIONS_N_OPTIONS]; vnet_app_attach_args_t _a, *a = &_a; - u32 segment_size = 512 << 20; clib_memset (a, 0, sizeof (*a)); clib_memset (options, 0, sizeof (options)); - if (pm->private_segment_size) - segment_size = pm->private_segment_size; a->name = format (0, "proxy-server"); a->api_client_index = pm->server_client_index; a->session_cb_vft = &proxy_session_cb_vft; a->options = options; - a->options[APP_OPTIONS_SEGMENT_SIZE] = segment_size; - a->options[APP_OPTIONS_ADD_SEGMENT_SIZE] = segment_size; + a->options[APP_OPTIONS_SEGMENT_SIZE] = pm->segment_size; + a->options[APP_OPTIONS_ADD_SEGMENT_SIZE] = pm->segment_size; a->options[APP_OPTIONS_RX_FIFO_SIZE] = pm->fifo_size; a->options[APP_OPTIONS_TX_FIFO_SIZE] = pm->fifo_size; a->options[APP_OPTIONS_MAX_FIFO_SIZE] = pm->max_fifo_size; @@ -832,7 +829,7 @@ proxy_server_create_command_fn (vlib_main_t * vm, unformat_input_t * input, pm->rcv_buffer_size = 1024; pm->prealloc_fifos = 0; pm->private_segment_count = 0; - pm->private_segment_size = 0; + pm->segment_size = 512 << 20; if (vlib_num_workers ()) clib_spinlock_init (&pm->sessions_lock); @@ -862,13 +859,7 @@ proxy_server_create_command_fn (vlib_main_t * vm, unformat_input_t * input, else if (unformat (line_input, "private-segment-size %U", unformat_memory_size, &tmp64)) { - if (tmp64 >= 0x100000000ULL) - { - error = clib_error_return ( - 0, "private segment size %lld (%llu) too large", tmp64, tmp64); - goto done; - } - pm->private_segment_size = tmp64; + pm->segment_size = tmp64; } else if (unformat (line_input, "server-uri %s", &server_uri)) vec_add1 (server_uri, 0); diff --git a/src/plugins/hs_apps/proxy.h b/src/plugins/hs_apps/proxy.h index 6e770248cac..26f4de2f729 100644 --- a/src/plugins/hs_apps/proxy.h +++ b/src/plugins/hs_apps/proxy.h @@ -61,7 +61,7 @@ typedef struct u8 high_watermark; /**< high watermark (%) */ u8 low_watermark; /**< low watermark (%) */ u32 private_segment_count; /**< Number of private fifo segs */ - u32 private_segment_size; /**< size of private fifo segs */ + u64 segment_size; /**< size of fifo segs */ u8 prealloc_fifos; /**< Request fifo preallocation */ int rcv_buffer_size; session_endpoint_cfg_t server_sep; -- cgit 1.2.3-korg