Date: Mon, 28 Jul 2025 12:42:07 -0700 From: Kevin Bowling <kevin.bowling@kev009.com> To: Kristof Provost <kp@freebsd.org>, Krzysztof Galazka <kgalazka@freebsd.org> Cc: Warner Losh <imp@bsdimp.com>, Warner Losh <imp@freebsd.org>, Eric Joyner <eric.joyner@intel.com>, src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 430f1acc451c - main - ice(4): Add MAC filter and VLAN resource limits to VFs Message-ID: <CAK7dMtC9BD9txMJGGomg7oobtDce2QLaRt5duG5QU16u2_7kEQ@mail.gmail.com> In-Reply-To: <F0A45EE7-B379-4CED-A8E9-089ECC14A302@FreeBSD.org> References: <202507181916.56IJGLMK001122@gitrepo.freebsd.org> <A6ABB965-BD49-492D-B3AA-0EA973C344D6@FreeBSD.org> <CANCZdfqMQ5pktZp_o8sAUEcLH=8WKaqmofmYx6EZpMNJcc=2Rg@mail.gmail.com> <F0A45EE7-B379-4CED-A8E9-089ECC14A302@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
One gentle reminder in all this, kgalazka@ is under mentorship and should be included in especially ixl and ice work and follow ups so we can release him to make all these mistakes and fixes :) Regards, Kevin On Mon, Jul 28, 2025 at 12:01=E2=80=AFPM Kristof Provost <kp@freebsd.org> w= rote: > > That=E2=80=99s confirmed, that has indeed fixed the arm64 LINT build erro= rs. > Thanks des. > > We=E2=80=99re still failing riscv and i386, but those are different error= s. > > The riscv one is new (or I haven=E2=80=99t seen it before, anyway): > > --- all_subdir_usr.bin --- > ld: error: undefined symbol: llvm::DisableABIBreakingChecks > >>> referenced by ClangScanDeps.cpp > >>> ClangScanDeps.pieo:(llvm::VerifyDisableABIBreakingCheck= s) > c++: error: linker command failed with exit code 1 (use -v to see invocat= ion) > > i386 has been failing for a while: > > --- all_subdir_sbin/recoverdisk --- > /usr/src/sbin/recoverdisk/recoverdisk.c:830:38: error: comparison of inte= gers of different signs: 'unsigned int' and 'time_t' (aka 'int') [-Werror,-= Wsign-compare] > --- all_subdir_usr.bin --- > --- uuencode.o --- > cc -target i386-unknown-freebsd15.0 --sysroot=3D/usr/obj/usr/src/i386.i38= 6/tmp -B/usr/obj/usr/src/i386.i386/tmp/usr/bin -O2 -pipe -fno-common -g = -gz=3Dzlib -MD -MF.depend.uuencode.o -MTuu > encode.o -std=3Dgnu17 -Wno-format-zero-length -fstack-protector-strong -W= system-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstr= ict-prototypes -Wmissing-prototypes -Wpoi > nter-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -W= unused-parameter -Wcast-align -Wchar-subscripts -Wnested-externs -Wold-styl= e-definition -Wno-pointer-sign -Wdate-t > ime -Wmissing-variable-declarations -Wthread-safety -Wno-empty-body -Wno-= string-plus-int -Wno-unused-const-variable -Wno-error=3Dunused-but-set-para= meter -Wno-error=3Dcast-function-type-misma > tch -Qunused-arguments -c /usr/src/usr.bin/bintrans/uuencode.c -o uu= encode.o > --- all_subdir_sbin --- > 830 | if (unsaved && (t_save + snapshot) < t_now) { > | ~~~~~~~~~~~~~~~~~ ^ ~~~~~ > 1 error generated. > *** [recoverdisk.o] Error code 1 > > =E2=80=94 > Kristof > > On 28 Jul 2025, at 19:45, Warner Losh wrote: > > I think DES may have just fixed this. Can you confirm? > > Warner > > On Mon, Jul 28, 2025 at 3:23=E2=80=AFAM Kristof Provost kp@freebsd.org wr= ote: > > I=E2=80=99m not sure if it=E2=80=99s this specific commit or another one = in the recent dev/ice updates, but the arm64 LINT-FDT, LINT-ACPI and LINT b= uilds all fail. > > This is from arm64-LINT: > > ld: error: undefined symbol: ice_iov_attach > >>> referenced by if_ice_iflib.c:859 (/usr/src/sys/dev/ice/if_ice_ifl= ib.c:859) > >>> if_ice_iflib.o:(ice_if_attach_post) > > ld: error: undefined symbol: ice_iov_detach > >>> referenced by if_ice_iflib.c:989 (/usr/src/sys/dev/ice/if_ice_ifl= ib.c:989) > >>> if_ice_iflib.o:(ice_if_detach) > >>> referenced by if_ice_iflib.c:2323 (/usr/src/sys/dev/ice/if_ice_if= lib.c:2323) > >>> if_ice_iflib.o:(ice_if_update_admin_status) > >>> referenced by if_ice_iflib.c:2376 (/usr/src/sys/dev/ice/if_ice_if= lib.c:2376) > >>> if_ice_iflib.o:(ice_transition_safe_mode) > > ld: error: undefined symbol: ice_iov_add_vf > >>> referenced by if_ice_iflib.c:3464 (/usr/src/sys/dev/ice/if_ice_if= lib.c:3464) > >>> if_ice_iflib.o:(ice_if_iov_vf_add) > > ld: error: undefined symbol: ice_iov_init > >>> referenced by if_ice_iflib.c:3429 (/usr/src/sys/dev/ice/if_ice_if= lib.c:3429) > >>> if_ice_iflib.o:(ice_if_iov_init) > > ld: error: undefined symbol: ice_iov_uninit > >>> referenced by if_ice_iflib.c:3445 (/usr/src/sys/dev/ice/if_ice_if= lib.c:3445) > >>> if_ice_iflib.o:(ice_if_iov_uninit) > > ld: error: undefined symbol: ice_iov_handle_vflr > >>> referenced by if_ice_iflib.c:3480 (/usr/src/sys/dev/ice/if_ice_if= lib.c:3480) > >>> if_ice_iflib.o:(ice_if_vflr_handle) > > ld: error: undefined symbol: ice_vc_notify_all_vfs_link_state > >>> referenced by if_ice_iflib.c:757 (/usr/src/sys/dev/ice/if_ice_ifl= ib.c:757) > >>> if_ice_iflib.o:(ice_update_link_status) > > ld: error: undefined symbol: ice_vc_handle_vf_msg > >>> referenced by ice_lib.c:2285 (/usr/src/sys/dev/ice/ice_lib.c:2285= ) > >>> ice_lib.o:(ice_process_ctrlq) > *** [kernel.full] Error code 1 > > =E2=80=94 > Kristof > > On 18 Jul 2025, at 21:16, Warner Losh wrote: > > The branch main has been updated by imp: > > URL: https://cgit.FreeBSD.org/src/commit/?id=3D430f1acc451c7084d1d5aa7df7= e7ecccea1a8b51 > > commit 430f1acc451c7084d1d5aa7df7e7ecccea1a8b51 > Author: Eric Joyner eric.joyner@intel.com > AuthorDate: 2024-10-17 22:19:09 +0000 > Commit: Warner Losh imp@FreeBSD.org > CommitDate: 2025-07-18 19:16:17 +0000 > > ice(4): Add MAC filter and VLAN resource limits to VFs > > Adds two new parameters to iovctl config for VLAN filter limits and MAC > filter limits and gives them defaults of 64 and 16, respectively. > > These are intended to limit the number of resources that a VF can > consume so that any one VF cannot starve an other VFs or the PF of > filters. > > Signed-off-by: Eric Joyner <eric.joyner@intel.com> > Signed-off-by: Krzysztof Galazka <krzysztof.galazka@intel.com> > Reviewed by: imp > Pull Request: https://github.com/freebsd/freebsd-src/pull/1573 > > ________________________________ > > sys/dev/ice/ice_iov.c | 45 ++++++++++++++++++++++++++++++++++++++++++--- > sys/dev/ice/ice_iov.h | 8 ++++++++ > 2 files changed, 50 insertions(+), 3 deletions(-) > > diff --git a/sys/dev/ice/ice_iov.c b/sys/dev/ice/ice_iov.c > index fc37a0e7679c..e06c7eb56f7a 100644 > --- a/sys/dev/ice/ice_iov.c > +++ b/sys/dev/ice/ice_iov.c > @@ -117,6 +117,10 @@ ice_iov_attach(struct ice_softc *sc) > IOV_SCHEMA_HASDEFAULT, ICE_DEFAULT_VF_QUEUES); > pci_iov_schema_add_uint16(vf_schema, "mirror-src-vsi", > IOV_SCHEMA_HASDEFAULT, ICE_INVALID_MIRROR_VSI); > > pci_iov_schema_add_uint16(vf_schema, "max-vlan-allowed", > > IOV_SCHEMA_HASDEFAULT, ICE_DEFAULT_VF_VLAN_LIMIT); > > pci_iov_schema_add_uint16(vf_schema, "max-mac-filters", > > IOV_SCHEMA_HASDEFAULT, ICE_DEFAULT_VF_FILTER_LIMIT); > > error =3D pci_iov_attach(dev, pf_schema, vf_schema); > if (error !=3D 0) { > > @@ -360,6 +364,9 @@ ice_iov_add_vf(struct ice_softc *sc, uint16_t vfnum, = const nvlist_t *params) > > vsi->mirror_src_vsi =3D nvlist_get_number(params, "mirror-src-vsi"); > > vf->vlan_limit =3D nvlist_get_number(params, "max-vlan-allowed"); > > vf->mac_filter_limit =3D nvlist_get_number(params, "max-mac-filters"); > > vf->vf_flags |=3D VF_FLAG_VLAN_CAP; > > /* Create and setup VSI in HW */ > > @@ -735,10 +742,17 @@ ice_vc_add_eth_addr_msg(struct ice_softc *sc, struc= t ice_vf *vf, u8 *msg_buf) > enum virtchnl_status_code v_status =3D VIRTCHNL_STATUS_SUCCESS; > struct virtchnl_ether_addr_list *addr_list; > struct ice_hw *hw =3D &sc->hw; > > u16 added_addr_cnt =3D 0; > int error =3D 0; > > addr_list =3D (struct virtchnl_ether_addr_list *)msg_buf; > > if (addr_list->num_elements > > > (vf->mac_filter_limit - vf->mac_filter_cnt)) { > > v_status =3D VIRTCHNL_STATUS_ERR_NO_MEMORY; > > goto done; > > } > > for (int i =3D 0; i < addr_list->num_elements; i++) { > u8 *addr =3D addr_list->list[i].addr; > > @@ -767,10 +781,15 @@ ice_vc_add_eth_addr_msg(struct ice_softc *sc, struc= t ice_vf *vf, u8 *msg_buf) > "%s: VF-%d: Error adding MAC addr for VSI %d\n", > func, vf->vf_num, vf->vsi->idx); > v_status =3D VIRTCHNL_STATUS_ERR_PARAM; > > goto done; > > continue; > } > > /* Don't count VF's MAC against its MAC filter limit */ > > if (memcmp(addr, vf->mac, ETHER_ADDR_LEN)) > > added_addr_cnt++; > } > > vf->mac_filter_cnt +=3D added_addr_cnt; > > done: > ice_aq_send_msg_to_vf(hw, vf->vf_num, VIRTCHNL_OP_ADD_ETH_ADDR, > v_status, NULL, 0, NULL); > @@ -791,6 +810,7 @@ ice_vc_del_eth_addr_msg(struct ice_softc *sc, struct = ice_vf *vf, u8 *msg_buf) > enum virtchnl_status_code v_status =3D VIRTCHNL_STATUS_SUCCESS; > struct virtchnl_ether_addr_list *addr_list; > struct ice_hw *hw =3D &sc->hw; > > u16 deleted_addr_cnt =3D 0; > int error =3D 0; > > addr_list =3D (struct virtchnl_ether_addr_list *)msg_buf; > > @@ -802,11 +822,18 @@ ice_vc_del_eth_addr_msg(struct ice_softc *sc, struc= t ice_vf *vf, u8 *msg_buf) > "%s: VF-%d: Error removing MAC addr for VSI %d\n", > func, vf->vf_num, vf->vsi->idx); > v_status =3D VIRTCHNL_STATUS_ERR_PARAM; > > goto done; > > continue; > } > > /* Don't count VF's MAC against its MAC filter limit */ > > if (memcmp(addr_list->list[i].addr, vf->mac, ETHER_ADDR_LEN)) > > deleted_addr_cnt++; > } > > -done: > > if (deleted_addr_cnt >=3D vf->mac_filter_cnt) > > vf->mac_filter_cnt =3D 0; > > else > > vf->mac_filter_cnt -=3D deleted_addr_cnt; > > ice_aq_send_msg_to_vf(hw, vf->vf_num, VIRTCHNL_OP_DEL_ETH_ADDR, > v_status, NULL, 0, NULL); > > } > @@ -838,6 +865,11 @@ ice_vc_add_vlan_msg(struct ice_softc *sc, struct ice= _vf *vf, u8 *msg_buf) > goto done; > } > > if (vlan_list->num_elements > (vf->vlan_limit - vf->vlan_cnt)) { > > v_status =3D VIRTCHNL_STATUS_ERR_NO_MEMORY; > > goto done; > > } > > status =3D ice_add_vlan_hw_filters(vsi, vlan_list->vlan_id, > vlan_list->num_elements); > if (status) { > > @@ -849,6 +881,8 @@ ice_vc_add_vlan_msg(struct ice_softc *sc, struct ice_= vf *vf, u8 *msg_buf) > goto done; > } > > vf->vlan_cnt +=3D vlan_list->num_elements; > > done: > ice_aq_send_msg_to_vf(hw, vf->vf_num, VIRTCHNL_OP_ADD_VLAN, > v_status, NULL, 0, NULL); > @@ -892,6 +926,11 @@ ice_vc_del_vlan_msg(struct ice_softc *sc, struct ice= _vf *vf, u8 *msg_buf) > goto done; > } > > if (vlan_list->num_elements >=3D vf->vlan_cnt) > > vf->vlan_cnt =3D 0; > > else > > vf->vlan_cnt -=3D vlan_list->num_elements; > > done: > ice_aq_send_msg_to_vf(hw, vf->vf_num, VIRTCHNL_OP_DEL_VLAN, > v_status, NULL, 0, NULL); > diff --git a/sys/dev/ice/ice_iov.h b/sys/dev/ice/ice_iov.h > index c2ac5fcd5c94..c4fb3e932e3f 100644 > --- a/sys/dev/ice/ice_iov.h > +++ b/sys/dev/ice/ice_iov.h > @@ -85,6 +85,11 @@ struct ice_vf { > u16 vf_num; > struct virtchnl_version_info version; > > u16 mac_filter_limit; > > u16 mac_filter_cnt; > > u16 vlan_limit; > > u16 vlan_cnt; > > u16 num_irq_vectors; > u16 *vf_imap; > struct ice_irq_vector *tx_irqvs; > > @@ -101,6 +106,9 @@ struct ice_vf { > #define ICE_VIRTCHNL_VALID_PROMISC_FLAGS (FLAG_VF_UNICAST_PROMISC | > FLAG_VF_MULTICAST_PROMISC) > > +#define ICE_DEFAULT_VF_VLAN_LIMIT 64 > +#define ICE_DEFAULT_VF_FILTER_LIMIT 16 > + > int ice_iov_attach(struct ice_softc *sc); > int ice_iov_detach(struct ice_softc *sc);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAK7dMtC9BD9txMJGGomg7oobtDce2QLaRt5duG5QU16u2_7kEQ>