[SPDK] Re: ABI change
Harris, James R <james.r.harris at intel.com> Wed, 23 Jun 2021 21:33:51 +0000
| Newsgroups | dev.linux.lists.spdk |
|---|---|
| Message-ID | <[email protected]> |
Hi Ed,
Neither. You would need to bump SO_VER and set SO_MINOR back to 0. The spdk_nvme_print_command() change is ABI incompatible, requiring the SO_VER bump. We always set SO_MINOR back to 0 after bumping SO_VER.
I would instead suggest a new spdk_nvme_print_command_csi() API, so that you don't have to modify the spdk_nvme_print_command() API. Then you should no longer need any version changes, since SO_MINOR has already been bumped during this release cycle.
-Jim
On 6/23/21, 2:21 PM, "Rodriguez, Edwin" <Ed.Rodriguez(a)netapp.com> wrote:
I've submitted a change which fails with: https://ci.spdk.io/results/autotest-per-patch/builds/50670/archive/autobuild-vg-autotest/build.log
00:06:41.549 SONAME changed from 'libspdk_nvme.so.5.0' to 'libspdk_nvme.so.5.1'
00:06:41.549
00:06:41.549 15 Added functions:
00:06:41.549
00:06:41.549 [A] 'function int spdk_kv_cmd_fmt_lower(const spdk_nvme_kv_cmd*, char*, size_t)' {spdk_kv_cmd_fmt_lower}
00:06:41.549 [A] 'function int spdk_kv_key_fmt_lower(char*, size_t, uint32_t, const uint8_t*)' {spdk_kv_key_fmt_lower}
00:06:41.549 [A] 'function bool spdk_nvme_ctrlr_is_fabrics(spdk_nvme_ctrlr*)' {spdk_nvme_ctrlr_is_fabrics}
00:06:41.549 [A] 'function int spdk_nvme_kv_cmd_delete(spdk_nvme_ns*, spdk_nvme_qpair*, spdk_nvme_kv_key_t*, spdk_nvme_cmd_cb, void*)' {spdk_nvme_kv_cmd_delete}
00:06:41.549 [A] 'function int spdk_nvme_kv_cmd_exist(spdk_nvme_ns*, spdk_nvme_qpair*, spdk_nvme_kv_key_t*, spdk_nvme_cmd_cb, void*)' {spdk_nvme_kv_cmd_exist}
00:06:41.549 [A] 'function void spdk_nvme_kv_cmd_get_key(const spdk_nvme_kv_cmd*, spdk_nvme_kv_key_t*)' {spdk_nvme_kv_cmd_get_key}
00:06:41.549 [A] 'function int spdk_nvme_kv_cmd_list(spdk_nvme_ns*, spdk_nvme_qpair*, spdk_nvme_kv_key_t*, void*, uint32_t, spdk_nvme_cmd_cb, void*)' {spdk_nvme_kv_cmd_list}
00:06:41.549 [A] 'function int spdk_nvme_kv_cmd_retrieve(spdk_nvme_ns*, spdk_nvme_qpair*, spdk_nvme_kv_key_t*, void*, uint32_t, spdk_nvme_cmd_cb, void*, uint32_t)' {spdk_nvme_kv_cmd_retrieve}
00:06:41.549 [A] 'function void spdk_nvme_kv_cmd_set_key(const spdk_nvme_kv_key_t*, spdk_nvme_kv_cmd*)' {spdk_nvme_kv_cmd_set_key}
00:06:41.549 [A] 'function int spdk_nvme_kv_cmd_store(spdk_nvme_ns*, spdk_nvme_qpair*, spdk_nvme_kv_key_t*, void*, uint32_t, spdk_nvme_cmd_cb, void*, uint32_t)' {spdk_nvme_kv_cmd_store}
00:06:41.549 [A] 'function uint32_t spdk_nvme_kv_get_max_key_len(spdk_nvme_ns*)' {spdk_nvme_kv_get_max_key_len}
00:06:41.549 [A] 'function uint32_t spdk_nvme_kv_get_max_num_keys(spdk_nvme_ns*)' {spdk_nvme_kv_get_max_num_keys}
00:06:41.549 [A] 'function uint32_t spdk_nvme_kv_get_max_value_len(spdk_nvme_ns*)' {spdk_nvme_kv_get_max_value_len}
00:06:41.549 [A] 'function const spdk_nvme_kv_ns_data* spdk_nvme_kv_ns_get_data(spdk_nvme_ns*)' {spdk_nvme_kv_ns_get_data}
00:06:41.549 [A] 'function int spdk_nvme_ns_cmd_copy(spdk_nvme_ns*, spdk_nvme_qpair*, const spdk_nvme_scc_source_range*, uint16_t, uint64_t, spdk_nvme_cmd_cb, void*)' {spdk_nvme_ns_cmd_copy}
00:06:41.549
00:06:41.549 1 function with some sub-type change:
00:06:41.549
00:06:41.549 [C] 'function void spdk_nvme_print_command(uint16_t, spdk_nvme_cmd*)' at nvme_qpair.c:337:1 has some sub-type changes:
00:06:41.549 parameter 3 of type 'enum spdk_nvme_csi' was added
Do I need to update both SO_VER and SO_MINOR for libnvme? Or will just updating SO_MINOR suffice?
_______________________________________________
SPDK mailing list -- spdk(a)lists.01.org
To unsubscribe send an email to spdk-leave(a)lists.01.org