[ovs-dev] [PATCH monitor_cond V5 03/18] ovsdb: allow unmonitored columns in condition evaluation

Liran Schour LIRANS at il.ibm.com
Sat Mar 26 14:13:47 UTC 2016


Ben Pfaff <blp at ovn.org> wrote on 21/03/2016 10:14:47 PM:

> On Fri, Mar 04, 2016 at 08:08:58AM +0000, Liran Schour wrote:
> > This commit allows to add unmonitored columns to a monitored table
> > due to condition update.
> > It will be used to evaluate conditions on unmonitored columns.
> > Update notification includes only monitored columns.
> > Due to the limited number of columns We do not remove unused 
unmonitored
> > columns due to condition update to keep the code simple.
> > 
> > Signed-off-by: Liran Schour <lirans at il.ibm.com>
> 
> Thanks for the revised series!
> 
> Can the following check in ovsdb_monitor_add_column() be reduced to a
> check for mt->columns_index_map[column->index] != -1? Why check only
> for unmonitored columns?  Also, I don't understand the comment about not
> removing unmonitored columns.
> 
> > +    /* Check duplication only for unmonitored columns.
> > +     * We do not remove unused unmonitored columns due to condition
> > +     * update */
> > +    if (!monitored) {
> > +        int i;
> > +        for (i = 0; i < mt->n_columns; i++) {
> > +            if (mt->columns[i].column == column) {
> > +                /* column exists */
> > +                return;
> > +            }
> > +        }
> > +    }
> 

Changed the check to mt->columns_index_map[column->index] != -1.
We check duplication only for unmonitored columns because for duplicated 
monitored columns we cancel the whole monitor request on 
ovsdb_monitor_table_check_duplicates() call. Duplicated unmonitored 
columns should only cause a return without adding this column.
The comment is not clear, will change it to the following:

/* Check duplication only for unmonitored columns.
 * Duplicated monitored columns will cause cancelation of monitor request
 * on ovsdb_monitor_table_check_duplicates() call */
 
> ovsdb_monitor_compose_row_update() and
> ovsdb_monitor_compose_row_update2() iterate through all columns and then
> skip the ones that are not monitored.  Can they just iterate through the
> monitored ones, e.g. change
>      for (i = 0; i < mt->n_columns; i++) {
> to
>      for (i = 0; i < mt->n_monitored_columns; i++) {
> 

Right, applied this change to the next patch series.




More information about the dev mailing list