All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yang, Ziye <ziye.yang at intel.com>
To: spdk@lists.01.org
Subject: Re: [SPDK] How to utilize multiple threads?
Date: Tue, 31 Jul 2018 06:50:32 +0000	[thread overview]
Message-ID: <FA6C2217B01E9D48A581BB486602101439A99B12@shsmsx102.ccr.corp.intel.com> (raw)
In-Reply-To: OS1PR01MB0229EAB2F4F0774B43F13972A22E0@OS1PR01MB0229.jpnprd01.prod.outlook.com

[-- Attachment #1: Type: text/plain, Size: 2519 bytes --]

Hi Li,

The acceptor is running on core 0 on default,  but when the connection is in ffp phase, it will be transferred to other reactors for connection handling, see the code in spdk_iscsi_conn_migration in lib/iscsi/iscsi.c. According to the code, you can see it is also related with the portal group info (cpu mask).


Thanks.



Best Regards
Ziye Yang

From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of 松本周平 / MATSUMOTO,SHUUHEI
Sent: Tuesday, July 31, 2018 2:06 PM
To: Storage Performance Development Kit <spdk(a)lists.01.org>
Subject: Re: [SPDK] How to utilize multiple threads?


Hi Li,



But the acceptor is only running on the core 0, right?

Yes.



But if what you see is in acceptor.c, it may be the acceptor dedicated to check start of communication by initiator.



Regardless of this, you are correct and each iSCSI connection is handled by single CPU core because SPDK is highly efficient and lockless.

By increasing number of iSCSI connections, all CPU cores will be used.



The following by Ziye Yang is not maintained now but it will be helpful if you read.

https://review.gerrithub.io/#/c/spdk/spdk/+/392733/18/doc/iscsi_pg.md


Thanks,
Shuhei
________________________________
差出人: SPDK <spdk-bounces(a)lists.01.org<mailto:spdk-bounces(a)lists.01.org>> が Li Feng <fengli(a)smartx.com<mailto:fengli(a)smartx.com>> の代理で送信
送信日�: 2018年7月31日 14:32
宛先: Storage Performance Development Kit
件名: [!][SPDK] How to utilize multiple threads?

Hi experts,

When I'm digging into SPDK iscsi source codes, I have some doubt about the threads/reactors.


Look at this example.

Start iscsi target on core 0-7:
```
app/iscsi_tgt/iscsi_tgt -L all -d 1 -m 0xff
```
I can see 8 threads which are polling.

But the acceptor is only running on the core 0, right?

This means all IOs are processed on core 0, no matter how many bdevs are connecting ?


I can see sending NOP IN is a poller running on all reactors. But this is not about read/write.

So how to utilize the other threads to maximum the iops and throughput?



Thanks in advance.


The SmartX email address is only for business purpose. Any sent message that is not related to the business is not authorized or permitted by SmartX.
本邮箱为北京志凌海纳科技有限公司(SmartX)工作邮箱. 如本邮箱发出的邮件与工作无关,该邮件未得到本公司任何的明示或默示的授权.


[-- Attachment #2: attachment.html --]
[-- Type: text/html, Size: 15373 bytes --]

             reply	other threads:[~2018-07-31  6:50 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-31  6:50 Yang, Ziye [this message]
  -- strict thread matches above, loose matches on Subject: below --
2018-08-01  3:25 [SPDK] How to utilize multiple threads? Li Feng
2018-07-31 14:55 Harris, James R
2018-07-31 10:46 
2018-07-31 10:34 Li Feng
2018-07-31  9:23 
2018-07-31  7:22 Li Feng
2018-07-31  6:06 
2018-07-31  5:32 Li Feng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=FA6C2217B01E9D48A581BB486602101439A99B12@shsmsx102.ccr.corp.intel.com \
    --to=spdk@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.