Re: [PATCH ibacm v2 0/2] ibacm: acme supports only one port

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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
> 




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux