From 06807e5db73f383c097336039b29e14f717802f4 Mon Sep 17 00:00:00 2001 From: Niu Yawei Date: Wed, 21 Jan 2026 23:32:16 -0500 Subject: [PATCH] DAOS-18495 object: use deep stack for IV involved ULT Use deep stack for IV involved ULTs. Signed-off-by: Niu Yawei --- src/container/srv_container.c | 5 +++-- src/container/srv_target.c | 9 ++++----- src/object/srv_ec_aggregate.c | 3 ++- src/object/srv_obj.c | 3 ++- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/container/srv_container.c b/src/container/srv_container.c index 578784d3d3c..c2d39f5ea1d 100644 --- a/src/container/srv_container.c +++ b/src/container/srv_container.c @@ -1,6 +1,6 @@ /* * (C) Copyright 2016-2024 Intel Corporation. - * (C) Copyright 2025 Hewlett Packard Enterprise Development LP + * (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP * * SPDX-License-Identifier: BSD-2-Clause-Patent */ @@ -2266,7 +2266,8 @@ cont_svc_eph_track_leader_start(struct cont_svc *svc) D_ASSERT(svc->cs_cont_ephs_leader_req == NULL); uuid_clear(anonym_uuid); sched_req_attr_init(&attr, SCHED_REQ_ANONYM, &anonym_uuid); - svc->cs_cont_ephs_leader_req = sched_create_ult(&attr, cont_track_eph_leader_ult, svc, 0); + svc->cs_cont_ephs_leader_req = + sched_create_ult(&attr, cont_track_eph_leader_ult, svc, DSS_DEEP_STACK_SZ); if (svc->cs_cont_ephs_leader_req == NULL) { D_ERROR(DF_UUID" Failed to create EC leader eph ULT.\n", DP_UUID(svc->cs_pool_uuid)); diff --git a/src/container/srv_target.c b/src/container/srv_target.c index 3b8aedfa404..6bfce2f6397 100644 --- a/src/container/srv_target.c +++ b/src/container/srv_target.c @@ -1,7 +1,7 @@ /** * (C) Copyright 2016-2024 Intel Corporation. * (C) Copyright 2025 Google LLC - * (C) Copyright 2025 Hewlett Packard Enterprise Development LP + * (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP * * SPDX-License-Identifier: BSD-2-Clause-Patent */ @@ -2358,10 +2358,9 @@ ds_cont_tgt_snapshot_notify_handler(crt_rpc_t *rpc) args.snap_opts = in->tsi_opts; args.oit_oid = in->tsi_oit_oid; - out->tso_rc = ds_pool_thread_collective(in->tsi_pool_uuid, - PO_COMP_ST_NEW | PO_COMP_ST_DOWN | - PO_COMP_ST_DOWNOUT, cont_snap_notify_one, - &args, 0); + out->tso_rc = ds_pool_thread_collective( + in->tsi_pool_uuid, PO_COMP_ST_NEW | PO_COMP_ST_DOWN | PO_COMP_ST_DOWNOUT, + cont_snap_notify_one, &args, DSS_ULT_DEEP_STACK); if (out->tso_rc != 0) D_ERROR(DF_CONT": Snapshot notify failed: "DF_RC"\n", DP_CONT(in->tsi_pool_uuid, in->tsi_cont_uuid), diff --git a/src/object/srv_ec_aggregate.c b/src/object/srv_ec_aggregate.c index 708f77540a8..fc0b920eb6f 100644 --- a/src/object/srv_ec_aggregate.c +++ b/src/object/srv_ec_aggregate.c @@ -2687,7 +2687,8 @@ ec_agg_param_init(struct ds_cont_child *cont, struct agg_param *param) agg_param->ap_credits_max = EC_AGG_ITERATION_MAX; D_INIT_LIST_HEAD(&agg_param->ap_agg_entry.ae_cur_stripe.as_dextents); - rc = dss_ult_execute(ec_agg_init_ult, agg_param, NULL, NULL, DSS_XS_SYS, 0, 0); + rc = dss_ult_execute(ec_agg_init_ult, agg_param, NULL, NULL, DSS_XS_SYS, 0, + DSS_DEEP_STACK_SZ); if (rc != 0) D_GOTO(out, rc); diff --git a/src/object/srv_obj.c b/src/object/srv_obj.c index b08b8981dee..2ecd52f1a0f 100644 --- a/src/object/srv_obj.c +++ b/src/object/srv_obj.c @@ -1405,7 +1405,8 @@ obj_fetch_ec_agg_boundary(struct obj_io_context *ioc, daos_unit_oid_t *uoid) arg.eab_pool = ioc->ioc_coc->sc_pool->spc_pool; uuid_copy(arg.eab_co_uuid, ioc->ioc_coc->sc_uuid); - rc = dss_ult_execute(obj_fetch_ec_agg_boundary_ult, &arg, NULL, NULL, DSS_XS_SYS, 0, 0); + rc = dss_ult_execute(obj_fetch_ec_agg_boundary_ult, &arg, NULL, NULL, DSS_XS_SYS, 0, + DSS_DEEP_STACK_SZ); if (rc) { DL_ERROR(rc, DF_CONT ", " DF_UOID " fetch ec_agg_boundary failed.", DP_CONT(ioc->ioc_coc->sc_pool_uuid, ioc->ioc_coc->sc_uuid),