On 11/24/2010 04:10 PM, Angus Salkeld wrote:
> On Wed, Nov 24, 2010 at 11:23:05AM -0700, Steven Dake wrote:
>> The flushing code was introducing data corruption because of recursion errors
>> that occur as a result of the design of udpu.  Totem no longer requires
>> the flushing technique because we don't mark a packet as missing until it has
>> not been seen by a certain number of token rotations per a previous patch.  
>> This
>> mechanism was introduced to work around a problem in switches where multicast
>> messages may be delayed by long periods compared to the unicast token.
>>
>> This patch removes the flushing logic from udpu since it is no longer 
>> necessary.
> 
> ACK & reviewd.
> 
> -Angus
> 
>>
>> Signed-off-by: Steven Dake <sd...@redhat.com>
>> ---
>>  exec/totemudpu.c |   35 ++---------------------------------
>>  1 files changed, 2 insertions(+), 33 deletions(-)
>>
>> diff --git a/exec/totemudpu.c b/exec/totemudpu.c
>> index 1a26099..3a566b1 100644
>> --- a/exec/totemudpu.c
>> +++ b/exec/totemudpu.c
>> @@ -162,12 +162,8 @@ struct totemudpu_instance {
>>  
>>      char iov_buffer[FRAME_SIZE_MAX];
>>  
>> -    char iov_buffer_flush[FRAME_SIZE_MAX];
>> -
>>      struct iovec totemudpu_iov_recv;
>>  
>> -    struct iovec totemudpu_iov_recv_flush;
>> -
>>      struct list_head member_list;
>>  
>>      int stats_sent;
>> @@ -190,8 +186,6 @@ struct totemudpu_instance {
>>  
>>      unsigned int my_memb_entries;
>>  
>> -    int flushing;
>> -
>>      struct totem_config *totem_config;
>>  
>>      struct totem_ip_address token_target;
>> @@ -221,9 +215,6 @@ static void totemudpu_instance_initialize (struct 
>> totemudpu_instance *instance)
>>      instance->totemudpu_iov_recv.iov_base = instance->iov_buffer;
>>  
>>      instance->totemudpu_iov_recv.iov_len = FRAME_SIZE_MAX; //sizeof 
>> (instance->iov_buffer);
>> -    instance->totemudpu_iov_recv_flush.iov_base = 
>> instance->iov_buffer_flush;
>> -
>> -    instance->totemudpu_iov_recv_flush.iov_len = FRAME_SIZE_MAX; //sizeof 
>> (instance->iov_buffer);
>>  
>>      /*
>>       * There is always atleast 1 processor
>> @@ -243,7 +234,6 @@ do {                                                     
>>                 \
>>              (const char *)format, ##args);                          \
>>  } while (0);
>>  
>> -
>>  static int authenticate_and_decrypt_sober (
>>      struct totemudpu_instance *instance,
>>      struct iovec *iov,
>> @@ -1083,11 +1073,7 @@ static int net_deliver_fn (
>>      unsigned char *msg_offset;
>>      unsigned int size_delv;
>>  
>> -    if (instance->flushing == 1) {
>> -            iovec = &instance->totemudpu_iov_recv_flush;
>> -    } else {
>> -            iovec = &instance->totemudpu_iov_recv;
>> -    }
>> +    iovec = &instance->totemudpu_iov_recv;
>>  
>>      /*
>>       * Receive datagram
>> @@ -1530,25 +1516,8 @@ int totemudpu_processor_count_set (
>>  
>>  int totemudpu_recv_flush (void *udpu_context)
>>  {
>> -    struct totemudpu_instance *instance = (struct totemudpu_instance 
>> *)udpu_context;
>> -    struct pollfd ufd;
>> -    int nfds;
>>      int res = 0;
>>  
>> -    instance->flushing = 1;
>> -
>> -    do {
>> -            ufd.fd = instance->token_socket;
>> -            ufd.events = POLLIN;
>> -            nfds = poll (&ufd, 1, 0);
>> -            if (nfds == 1 && ufd.revents & POLLIN) {
>> -            net_deliver_fn (0, instance->token_socket,
>> -                    ufd.revents, instance);
>> -            }
>> -    } while (nfds == 1);
>> -
>> -    instance->flushing = 0;
>> -
>>      return (res);
>>  }
>>  
>> @@ -1670,7 +1639,7 @@ extern int totemudpu_recv_mcast_empty (
>>       */
>>      msg_recv.msg_name = &system_from;
>>      msg_recv.msg_namelen = sizeof (struct sockaddr_storage);
>> -    msg_recv.msg_iov = &instance->totemudpu_iov_recv_flush;
>> +    msg_recv.msg_iov = &instance->totemudpu_iov_recv;
>>      msg_recv.msg_iovlen = 1;
>>  #if !defined(COROSYNC_SOLARIS)
>>      msg_recv.msg_control = 0;
>> -- 
>> 1.7.2.3
>>
>> _______________________________________________
>> Openais mailing list
>> Openais@lists.linux-foundation.org
>> https://lists.linux-foundation.org/mailman/listinfo/openais
> _______________________________________________
> Openais mailing list
> Openais@lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/openais

merged

thanks
-steve
_______________________________________________
Openais mailing list
Openais@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to