[SCM] Samba Shared Repository - branch master updated

Martin Schwenke martins at samba.org
Tue Jan 30 17:13:02 UTC 2018


The branch, master has been updated
       via  32d867c ctdb-common: Optimize sock_queue's memory managament
       via  eae2d35 ctdb-common: Remove sock_queue_destructor
       via  f9150c5 ctdb-common: Return if packet size is zero
      from  0766f06 libcli: Remove finddcs_nbt.c

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 32d867cf09a15626b991be414ab6440f68953f35
Author: Swen Schillig <swen at vnet.ibm.com>
Date:   Mon Jan 8 14:55:31 2018 +0100

    ctdb-common: Optimize sock_queue's memory managament
    
    Make use of talloc pools for the sock_queue's memory requirements.
    
    Signed-off-by: Swen Schillig <swen at vnet.ibm.com>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Martin Schwenke <martin at meltin.net>
    
    Autobuild-User(master): Martin Schwenke <martins at samba.org>
    Autobuild-Date(master): Tue Jan 30 18:12:32 CET 2018 on sn-devel-144

commit eae2d35fec071b020f420ba74ac6551c84140a4d
Author: Swen Schillig <swen at vnet.ibm.com>
Date:   Mon Jan 8 14:13:46 2018 +0100

    ctdb-common: Remove sock_queue_destructor
    
    The sock_queue_destructor is not needed.
    The performed tasks will be performed automatically.
    
    Signed-off-by: Swen Schillig <swen at vnet.ibm.com>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Martin Schwenke <martin at meltin.net>

commit f9150c5fa0ac81a848dbb6978a73c10170648d5b
Author: Swen Schillig <swen at vnet.ibm.com>
Date:   Mon Jan 8 14:10:40 2018 +0100

    ctdb-common: Return if packet size is zero
    
    Prevent further processing of sock_queue_process
    if the received packet size is zero.
    
    Signed-off-by: Swen Schillig <swen at vnet.ibm.com>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Martin Schwenke <martin at meltin.net>

-----------------------------------------------------------------------

Summary of changes:
 ctdb/common/sock_io.c | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)


Changeset truncated at 500 lines:

diff --git a/ctdb/common/sock_io.c b/ctdb/common/sock_io.c
index 3f7138f..51341ce 100644
--- a/ctdb/common/sock_io.c
+++ b/ctdb/common/sock_io.c
@@ -94,8 +94,18 @@ struct sock_queue {
 	size_t buflen, begin, end;
 };
 
+/*
+ * The reserved talloc headers, SOCK_QUEUE_OBJ_COUNT,
+ * and the pre-allocated pool-memory SOCK_QUEUE_POOL_SIZE,
+ * are used for the sub-objects queue->im, queue->queue, queue->fde
+ * and queue->buf.
+ * If the memory allocating sub-objects of struct sock_queue change,
+ * those values need to be adjusted.
+ */
+#define SOCK_QUEUE_OBJ_COUNT 4
+#define SOCK_QUEUE_POOL_SIZE 2048
+
 static bool sock_queue_set_fd(struct sock_queue *queue, int fd);
-static int sock_queue_destructor(struct sock_queue *queue);
 static void sock_queue_handler(struct tevent_context *ev,
 			       struct tevent_fd *fde, uint16_t flags,
 			       void *private_data);
@@ -112,10 +122,12 @@ struct sock_queue *sock_queue_setup(TALLOC_CTX *mem_ctx,
 {
 	struct sock_queue *queue;
 
-	queue = talloc_zero(mem_ctx, struct sock_queue);
+	queue = talloc_pooled_object(mem_ctx, struct sock_queue,
+				     SOCK_QUEUE_OBJ_COUNT, SOCK_QUEUE_POOL_SIZE);
 	if (queue == NULL) {
 		return NULL;
 	}
+	memset(queue, 0, sizeof(struct sock_queue));
 
 	queue->ev = ev;
 	queue->callback = callback;
@@ -138,8 +150,6 @@ struct sock_queue *sock_queue_setup(TALLOC_CTX *mem_ctx,
 		return NULL;
 	}
 
-	talloc_set_destructor(queue, sock_queue_destructor);
-
 	return queue;
 }
 
@@ -168,14 +178,6 @@ static bool sock_queue_set_fd(struct sock_queue *queue, int fd)
 	return true;
 }
 
-static int sock_queue_destructor(struct sock_queue *queue)
-{
-	TALLOC_FREE(queue->fde);
-	queue->fd = -1;
-
-	return 0;
-}
-
 static void sock_queue_handler(struct tevent_context *ev,
 			       struct tevent_fd *fde, uint16_t flags,
 			       void *private_data)
@@ -231,6 +233,7 @@ static void sock_queue_process(struct sock_queue *queue)
 	if (pkt_size == 0) {
 		D_ERR("Invalid packet of length 0\n");
 		queue->callback(NULL, 0, queue->private_data);
+		return;
 	}
 
 	if ((queue->end - queue->begin) < pkt_size) {


-- 
Samba Shared Repository



More information about the samba-cvs mailing list