X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;ds=inline;f=lnet%2Fklnds%2Fsocklnd%2Fsocklnd_lib-winnt.c;h=b1899ec47a0713c5cbe479026711f7b6ed56e156;hb=9c6ebfd11be1cc11629a2960c8c818492e1f0980;hp=0e5d65d36136084c053e8bb64a0a00af0cffbefd;hpb=e5c35288861cf8ca4aecc30747b61069f9d80bb5;p=fs%2Flustre-release.git diff --git a/lnet/klnds/socklnd/socklnd_lib-winnt.c b/lnet/klnds/socklnd/socklnd_lib-winnt.c old mode 100755 new mode 100644 index 0e5d65d..b1899ec --- a/lnet/klnds/socklnd/socklnd_lib-winnt.c +++ b/lnet/klnds/socklnd/socklnd_lib-winnt.c @@ -1,6 +1,4 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -26,8 +24,10 @@ * GPL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved + * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. + * + * Copyright (c) 2012, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -79,7 +79,15 @@ ksocknal_lib_tunables_init () ksocknal_ctl_table[i].ctl_name = j++; ksocknal_ctl_table[i].procname = "peer_credits"; - ksocknal_ctl_table[i].data = ksocknal_tunables.ksnd_peercredits; + ksocknal_ctl_table[i].data = ksocknal_tunables.ksnd_peertxcredits; + ksocknal_ctl_table[i].maxlen = sizeof (int); + ksocknal_ctl_table[i].mode = 0444; + ksocknal_ctl_table[i].proc_handler = &proc_dointvec; + i++; + + ksocknal_ctl_table[i].ctl_name = j++; + ksocknal_ctl_table[i].procname = "peer_buffer_credits"; + ksocknal_ctl_table[i].data = ksocknal_tunables.ksnd_peerrtrcredits; ksocknal_ctl_table[i].maxlen = sizeof (int); ksocknal_ctl_table[i].mode = 0444; ksocknal_ctl_table[i].proc_handler = &proc_dointvec; @@ -120,7 +128,7 @@ ksocknal_lib_tunables_init () ksocknal_ctl_table[i].ctl_name = j++; ksocknal_ctl_table[i].procname = "zero_copy"; - ksocknal_ctl_table[i].data = ksocknal_tunables.ksnd_zc_min_frag; + ksocknal_ctl_table[i].data = ksocknal_tunables.ksnd_zc_min_payload; ksocknal_ctl_table[i].maxlen = sizeof (int); ksocknal_ctl_table[i].mode = 0644; ksocknal_ctl_table[i].proc_handler = &proc_dointvec; @@ -166,6 +174,14 @@ ksocknal_lib_tunables_init () ksocknal_ctl_table[i].proc_handler = &proc_dointvec; i++; + ksocknal_ctl_table[i].ctl_name = j++; + ksocknal_ctl_table[i].procname = "round_robin"; + ksocknal_ctl_table[i].data = ksocknal_tunables.ksnd_round_robin; + ksocknal_ctl_table[i].maxlen = sizeof(int); + ksocknal_ctl_table[i].mode = 0644; + ksocknal_ctl_table[i].proc_handler = &proc_dointvec; + i++; + #ifdef CPU_AFFINITY ksocknal_ctl_table[i].ctl_name = j++; ksocknal_ctl_table[i].procname = "irq_affinity"; @@ -312,7 +328,7 @@ ksocknal_lib_send_iov (ksock_conn_t *conn, ksock_tx_t *tx) ksocknal_lib_csum_tx(tx); nob = ks_query_iovs_length(tx->tx_iov, tx->tx_niov); - flags = (!list_empty (&conn->ksnc_tx_queue) || nob < tx->tx_resid) ? + flags = (!cfs_list_empty (&conn->ksnc_tx_queue) || nob < tx->tx_resid) ? (MSG_DONTWAIT | MSG_MORE) : MSG_DONTWAIT; rc = ks_send_iovs(sock, tx->tx_iov, tx->tx_niov, flags, 0); @@ -333,7 +349,7 @@ ksocknal_lib_send_kiov (ksock_conn_t *conn, ksock_tx_t *tx) nkiov = tx->tx_nkiov; nob = ks_query_kiovs_length(tx->tx_kiov, nkiov); - flags = (!list_empty (&conn->ksnc_tx_queue) || nob < tx->tx_resid) ? + flags = (!cfs_list_empty (&conn->ksnc_tx_queue) || nob < tx->tx_resid) ? (MSG_DONTWAIT | MSG_MORE) : MSG_DONTWAIT; rc = ks_send_kiovs(sock, tx->tx_kiov, nkiov, flags, 0); @@ -528,7 +544,7 @@ ksocknal_lib_push_conn (ksock_conn_t *conn) ks_get_tconn(tconn); - spin_lock(&tconn->kstc_lock); + spin_lock(&tconn->kstc_lock); if (tconn->kstc_type == kstt_sender) { nagle = tconn->sender.kstc_info.nagle; tconn->sender.kstc_info.nagle = 0; @@ -538,7 +554,7 @@ ksocknal_lib_push_conn (ksock_conn_t *conn) tconn->child.kstc_info.nagle = 0; } - spin_unlock(&tconn->kstc_lock); + spin_unlock(&tconn->kstc_lock); val = 1; rc = ks_set_tcp_option( @@ -549,15 +565,15 @@ ksocknal_lib_push_conn (ksock_conn_t *conn) ); LASSERT (rc == 0); - spin_lock(&tconn->kstc_lock); - - if (tconn->kstc_type == kstt_sender) { - tconn->sender.kstc_info.nagle = nagle; - } else { - LASSERT(tconn->kstc_type == kstt_child); - tconn->child.kstc_info.nagle = nagle; - } - spin_unlock(&tconn->kstc_lock); + spin_lock(&tconn->kstc_lock); + + if (tconn->kstc_type == kstt_sender) { + tconn->sender.kstc_info.nagle = nagle; + } else { + LASSERT(tconn->kstc_type == kstt_child); + tconn->child.kstc_info.nagle = nagle; + } + spin_unlock(&tconn->kstc_lock); ks_put_tconn(tconn); } @@ -602,28 +618,28 @@ void ksocknal_schedule_callback(struct socket*sock, int mode) { ksock_conn_t * conn = (ksock_conn_t *) sock->kstc_conn; - read_lock (&ksocknal_data.ksnd_global_lock); + read_lock(&ksocknal_data.ksnd_global_lock); if (mode) { ksocknal_write_callback(conn); } else { ksocknal_read_callback(conn); } - read_unlock (&ksocknal_data.ksnd_global_lock); + read_unlock(&ksocknal_data.ksnd_global_lock); } void ksocknal_tx_fini_callback(ksock_conn_t * conn, ksock_tx_t * tx) { - /* remove tx/conn from conn's outgoing queue */ - spin_lock_bh (&conn->ksnc_scheduler->kss_lock); - list_del(&tx->tx_list); - if (list_empty(&conn->ksnc_tx_queue)) { - list_del (&conn->ksnc_tx_list); - } - spin_unlock_bh (&conn->ksnc_scheduler->kss_lock); + /* remove tx/conn from conn's outgoing queue */ + spin_lock_bh(&conn->ksnc_scheduler->kss_lock); + cfs_list_del(&tx->tx_list); + if (cfs_list_empty(&conn->ksnc_tx_queue)) + cfs_list_del(&conn->ksnc_tx_list); + + spin_unlock_bh(&conn->ksnc_scheduler->kss_lock); - /* complete send; tx -ref */ - ksocknal_tx_decref (tx); + /* complete send; tx -ref */ + ksocknal_tx_decref(tx); } void @@ -646,7 +662,19 @@ ksocknal_lib_reset_callback(struct socket *sock, ksock_conn_t *conn) } int -ksocknal_lib_zc_capable(struct socket *sock) +ksocknal_lib_zc_capable(ksock_conn_t *conn) +{ + return 0; +} + +int +ksocknal_lib_memory_pressure(ksock_conn_t *conn) +{ + return 0; +} + +int +ksocknal_lib_bind_thread_to_cpu(int id) { return 0; }