On 1/29/19 3:43 PM, Jason Gunthorpe wrote: > On Tue, Jan 29, 2019 at 09:46:58AM +0100, Håkon Bugge wrote: >> >> >>> On 23 Jan 2019, at 18:17, Hal Rosenstock <hal@xxxxxxxxxxxxxxxxxx> wrote: >>> >>> On 1/16/2019 3:34 PM, Jason Gunthorpe wrote: >>>> Hal? I have you listed as maintaining ACM, do you want to stop? >>> >>> Yes; I don't really have the time for this anymore. >> >> Anyone else? > > Hey Hakon, I think you just got nominated as the new ACM maintainer :) :) Congratulation!, on a semi-related note I've just found two fixes from 2016 I had for ibacm Hakon can you please have a look and see if they are still needed? commit 966120a5b3c0f8302a4a2d8a1d74207bd35c97e6 Author: Mark Bloch <markb@xxxxxxxxxxxx> Date: Thu Jun 2 14:40:59 2016 +0300 Fix invalidation of a path record When a timeout has expired for a path record, we need to initialize the DLID, otherwise the DLID will be included in the request for a new path record which is invalid because the DLID may have changed. Signed-off-by: Mark Bloch <markb@xxxxxxxxxxxx> diff --git a/prov/acmp/src/acmp.c b/prov/acmp/src/acmp.c index 717bb83..ad7be19 100644 --- a/prov/acmp/src/acmp.c +++ b/prov/acmp/src/acmp.c @@ -1734,11 +1734,12 @@ static int acmp_dest_timeout(struct acmp_dest *dest) { uint64_t timestamp = time_stamp_min(); - if (timestamp > dest->addr_timeout) { + if (timestamp >= dest->addr_timeout) { acm_log(2, "%s address timed out\n", dest->name); dest->state = ACMP_INIT; return 1; - } else if (timestamp > dest->route_timeout) { + } else if (timestamp >= dest->route_timeout) { + dest->path.dlid = 0; acm_log(2, "%s route timed out\n", dest->name); dest->state = ACMP_ADDR_RESOLVED; return 1; and: commit ce409bff62a1c9d6d0f3c1a7d0f93241558b8d79 Author: Mark Bloch <markb@xxxxxxxxxxxx> Date: Thu Sep 15 10:56:19 2016 +0300 Update port info on reregister event On SM handover/failover an IBV_EVENT_CLIENT_REREGISTER event is triggered. ibacm didn't update the port info (which includes SA info) which resulted that mads sent by ibacm were sent with stale SA parameters. The fix forces ibacm to update the port info on IBV_EVENT_CLIENT_REREGISTER. Signed-off-by: Mark Bloch <markb@xxxxxxxxxxxx> diff --git a/src/acm.c b/src/acm.c index b75f089..99c06c4 100644 --- a/src/acm.c +++ b/src/acm.c @@ -2599,6 +2599,7 @@ static void acm_event_handler(struct acmc_device *dev) acm_port_down(&dev->port[i]); break; case IBV_EVENT_CLIENT_REREGISTER: + acm_port_change(&dev->port[i]); if ((dev->port[i].state == IBV_PORT_ACTIVE) && dev->port[i].prov_port_context) { dev->port[i].prov->handle_event(dev->port[i].prov_port_context, I don't have an a setup/env to test this (just don't some git cleaning and found those) and it seems you care and testing this :) Mark > > Jason >