20 Nov, 2014

1 commit


02 Apr, 2013

2 commits

  • This is the final step in RCU conversion.

    Things that are removed:

    - svc->usecnt: now svc is accessed under RCU read lock
    - svc->inc: and some unused code
    - ip_vs_bind_pe and ip_vs_unbind_pe: no ability to replace PE
    - __ip_vs_svc_lock: replaced with RCU
    - IP_VS_WAIT_WHILE: now readers lookup svcs and dests under
    RCU and work in parallel with configuration

    Other changes:

    - before now, a RCU read-side critical section included the
    calling of the schedule method, now it is extended to include
    service lookup
    - ip_vs_svc_table and ip_vs_svc_fwm_table are now using hlist
    - svc->pe and svc->scheduler remain to the end (of grace period),
    the schedulers are prepared for such RCU readers
    even after done_service is called but they need
    to use synchronize_rcu because last ip_vs_scheduler_put
    can happen while RCU read-side critical sections
    use an outdated svc->scheduler pointer
    - as planned, update_service is removed
    - empty services can be freed immediately after grace period.
    If dests were present, the services are freed from
    the dest trash code

    Signed-off-by: Julian Anastasov
    Signed-off-by: Simon Horman

    Julian Anastasov
     
  • Allow the readers to use RCU lock and for
    PE module registrations use global mutex instead of
    spinlock. All PE modules need to use synchronize_rcu
    in their module exit handler.

    Signed-off-by: Julian Anastasov
    Signed-off by: Hans Schillstrom
    Signed-off-by: Simon Horman

    Julian Anastasov
     

25 Nov, 2010

1 commit

  • Functionality improvements
    * flags changed from 16 to 32 bits
    * fwmark added (32 bits)
    * timeout in sec. added (32 bits)
    * pe data added (Variable length)
    * IPv6 capabilities (3x16 bytes for addr.)
    * Version and type in every conn msg.

    ip_vs_process_message() now handles Version 1 messages
    and will call ip_vs_process_message_v0() for version 0 messages.

    ip_vs_proc_conn() is common for both version, and handles the update of
    connection hash.

    ip_vs_conn_fill_param_sync() - Version 1 messages only
    ip_vs_conn_fill_param_sync_v0() - Version 0 messages only

    Signed-off-by: Hans Schillstrom
    Acked-by: Julian Anastasov
    Signed-off-by: Simon Horman

    Hans Schillstrom
     

16 Nov, 2010

1 commit

  • The dest of a connection may not exist if it has been created as the result
    of connection synchronisation. But in order for connection entries for
    templates with persistence engine data created through connection
    synchronisation to be valid access to the persistence engine pointer is
    required. So add the persistence engine to the connection itself.

    Signed-off-by: Simon Horman

    Simon Horman
     

04 Oct, 2010

1 commit