All of lore.kernel.org
 help / color / mirror / Atom feed
* [SPDK] Re: ABI change
@ 2021-06-24 14:43 Rodriguez, Edwin
  0 siblings, 0 replies; 3+ messages in thread
From: Rodriguez, Edwin @ 2021-06-24 14:43 UTC (permalink / raw)
  To: spdk

[-- Attachment #1: Type: text/plain, Size: 5014 bytes --]

I'm stumped by the error here: https://ci.spdk.io/results/autotest-per-patch/builds/50808/archive/autobuild-vg-autotest/build.log


00:07:23.879  ************************************
00:07:23.879  START TEST confirm_makefile_deps
00:07:23.879  ************************************
00:07:23.880  ---------------------------------------------------------------------
00:07:29.634  there was a dependency mismatch in the library bdev_kv_null
00:07:29.634  The makefile lists: ''
00:07:29.634  readelf outputs   : 'bdev jsonrpc json log nvme rpc thread util'
00:07:29.634  ---------------------------------------------------------------------


Where does the Makefile list dependencies?  And which Makefile?
________________________________
From: Harris, James R <james.r.harris(a)intel.com>
Sent: Wednesday, June 23, 2021 5:33 PM
To: Storage Performance Development Kit <spdk(a)lists.01.org>
Subject: [SPDK] Re: ABI change

NetApp Security WARNING: This is an external email. Do not click links or open attachments unless you recognize the sender and know the content is safe.




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

_______________________________________________
SPDK mailing list -- spdk(a)lists.01.org
To unsubscribe send an email to spdk-leave(a)lists.01.org

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [SPDK] Re: ABI change
@ 2021-06-24 14:58 Harris, James R
  0 siblings, 0 replies; 3+ messages in thread
From: Harris, James R @ 2021-06-24 14:58 UTC (permalink / raw)
  To: spdk

[-- Attachment #1: Type: text/plain, Size: 5674 bytes --]

The dependencies are specified in mk/spdk.lib_deps.mk.

The log isn't very clear on that, I've just pushed a patch out for review to fix it: https://review.spdk.io/gerrit/c/spdk/spdk/+/8499.

-Jim


On 6/24/21, 7:43 AM, "Rodriguez, Edwin" <Ed.Rodriguez(a)netapp.com> wrote:

    I'm stumped by the error here: https://ci.spdk.io/results/autotest-per-patch/builds/50808/archive/autobuild-vg-autotest/build.log


    00:07:23.879  ************************************
    00:07:23.879  START TEST confirm_makefile_deps
    00:07:23.879  ************************************
    00:07:23.880  ---------------------------------------------------------------------
    00:07:29.634  there was a dependency mismatch in the library bdev_kv_null
    00:07:29.634  The makefile lists: ''
    00:07:29.634  readelf outputs   : 'bdev jsonrpc json log nvme rpc thread util'
    00:07:29.634  ---------------------------------------------------------------------


    Where does the Makefile list dependencies?  And which Makefile?
    ________________________________
    From: Harris, James R <james.r.harris(a)intel.com>
    Sent: Wednesday, June 23, 2021 5:33 PM
    To: Storage Performance Development Kit <spdk(a)lists.01.org>
    Subject: [SPDK] Re: ABI change

    NetApp Security WARNING: This is an external email. Do not click links or open attachments unless you recognize the sender and know the content is safe.




    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

    _______________________________________________
    SPDK mailing list -- spdk(a)lists.01.org
    To unsubscribe send an email to spdk-leave(a)lists.01.org
    _______________________________________________
    SPDK mailing list -- spdk(a)lists.01.org
    To unsubscribe send an email to spdk-leave(a)lists.01.org


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [SPDK] Re: ABI change
@ 2021-06-23 21:33 Harris, James R
  0 siblings, 0 replies; 3+ messages in thread
From: Harris, James R @ 2021-06-23 21:33 UTC (permalink / raw)
  To: spdk

[-- Attachment #1: Type: text/plain, Size: 3760 bytes --]

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


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-06-24 14:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-24 14:43 [SPDK] Re: ABI change Rodriguez, Edwin
  -- strict thread matches above, loose matches on Subject: below --
2021-06-24 14:58 Harris, James R
2021-06-23 21:33 Harris, James R

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.