diff --git a/libknet/tests/knet_bench.c b/libknet/tests/knet_bench.c
index 4001309..3863973 100644
--- a/libknet/tests/knet_bench.c
+++ b/libknet/tests/knet_bench.c
@@ -17,6 +17,9 @@
 #include <pthread.h>
 #include <sys/types.h>
 #include <inttypes.h>
+#include <sys/mman.h>
+#include <sys/time.h>
+#include <sys/resource.h>
 
 #include "libknet.h"
 
@@ -470,7 +473,7 @@ static void setup_knet(int argc, char *argv[])
 		exit(FAIL);
 	}
 
-	if (knet_handle_pmtud_setfreq(knet_h, 60) < 0) {
+	if (knet_handle_pmtud_setfreq(knet_h, 10) < 0) {
 		printf("knet_handle_pmtud_setfreq failed: %s\n", strerror(errno));
 		knet_handle_free(knet_h);
 		exit(FAIL);
@@ -1196,6 +1199,27 @@ static void sigint_handler(int signum)
 	exit(PASS);
 }
 
+static void knet_mlockall (void)
+{
+	int res;
+	struct rlimit rlimit;
+
+	rlimit.rlim_cur = RLIM_INFINITY;
+	rlimit.rlim_max = RLIM_INFINITY;
+
+#ifndef RLIMIT_MEMLOCK
+#define RLIMIT_MEMLOCK RLIMIT_VMEM
+#endif
+
+	setrlimit (RLIMIT_MEMLOCK, &rlimit);
+
+	res = mlockall (MCL_CURRENT | MCL_FUTURE);
+	if (res == -1) {
+		printf("Could not lock memory of service to avoid page faults");
+		exit(FAIL);
+	}
+}
+
 int main(int argc, char *argv[])
 {
 	if (signal(SIGINT, sigint_handler) == SIG_ERR) {
@@ -1205,6 +1229,9 @@ int main(int argc, char *argv[])
 
 	need_root();
 
+	set_scheduler(SCHED_RR);
+	knet_mlockall();
+
 	setup_knet(argc, argv);
 
 	setup_data_txrx_common();
diff --git a/libknet/threads_pmtud.c b/libknet/threads_pmtud.c
index a7d8edf..17a868d 100644
--- a/libknet/threads_pmtud.c
+++ b/libknet/threads_pmtud.c
@@ -167,6 +167,7 @@ retry:
 	savederrno = errno;
 
 	err = transport_tx_sock_error(knet_h, dst_link->transport_type, dst_link->outsock, len, savederrno);
+	log_debug(knet_h, KNET_SUB_PMTUD, "SENT: %li %li %i %s", len, data_len, err, strerror(savederrno));
 	switch(err) {
 		case -1: /* unrecoverable error */
 			log_debug(knet_h, KNET_SUB_PMTUD, "Unable to send pmtu packet (sendto): %d %s", savederrno, strerror(savederrno));
diff --git a/libknet/threads_rx.c b/libknet/threads_rx.c
index e9e23db..01589f5 100644
--- a/libknet/threads_rx.c
+++ b/libknet/threads_rx.c
@@ -14,6 +14,7 @@
 #include <errno.h>
 #include <sys/uio.h>
 #include <pthread.h>
+#include <stdlib.h>
 
 #include "compat.h"
 #include "compress.h"
@@ -343,7 +344,7 @@ static void _parse_recv_from_links(knet_handle_t knet_h, int sockfd, const struc
 
 		if (!src_host->status.reachable) {
 			log_debug(knet_h, KNET_SUB_RX, "Source host %u not reachable yet", src_host->host_id);
-			//return;
+			abort();
 		}
 		inbuf->khp_data_seq_num = ntohs(inbuf->khp_data_seq_num);
 		channel = inbuf->khp_data_channel;
@@ -642,6 +643,7 @@ retry_pong:
 
 		break;
 	case KNET_HEADER_TYPE_PMTUD:
+		log_debug(knet_h, KNET_SUB_RX, "RECEIVED PMTUD: %zu %u", len, src_link->link_id);
 		src_link->status.stats.rx_pmtu_packets++;
 		src_link->status.stats.rx_pmtu_bytes += len;
 		outlen = KNET_HEADER_PMTUD_SIZE;
@@ -667,8 +669,10 @@ retry_pmtud:
 				(struct sockaddr *) &src_link->dst_addr,
 				sizeof(struct sockaddr_storage));
 		savederrno = errno;
+		log_debug(knet_h, KNET_SUB_RX, "SENT PMTUD REPLY: %s", strerror(errno));
 		if (len != outlen) {
 			err = transport_tx_sock_error(knet_h, src_link->transport_type, src_link->outsock, len, savederrno);
+			log_debug(knet_h, KNET_SUB_RX, "ERROR SENDING PMTU REPLY: %d", err);
 			switch(err) {
 				case -1: /* unrecoverable error */
 					log_debug(knet_h, KNET_SUB_RX,
@@ -691,6 +695,7 @@ retry_pmtud:
 
 		break;
 	case KNET_HEADER_TYPE_PMTUD_REPLY:
+		log_debug(knet_h, KNET_SUB_RX, "RECEIVED PMTUD REPLY: %u src: %u", inbuf->khp_pmtud_size, src_link->link_id);
 		src_link->status.stats.rx_pmtu_packets++;
 		src_link->status.stats.rx_pmtu_bytes += len;
 		if (pthread_mutex_lock(&knet_h->pmtud_mutex) != 0) {
@@ -698,7 +703,8 @@ retry_pmtud:
 			break;
 		}
 		src_link->last_recv_mtu = inbuf->khp_pmtud_size;
-		pthread_cond_signal(&knet_h->pmtud_cond);
+		err = pthread_cond_signal(&knet_h->pmtud_cond);
+		log_debug(knet_h, KNET_SUB_RX, "SIGNALING: %d", err);
 		pthread_mutex_unlock(&knet_h->pmtud_mutex);
 		break;
 	default:
