| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
Don't call callout_drain() with iscsi mutex held; this fixes a warning
that was introduced recently. While here, don't try to access is_terminating
without lock.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=282955
|
| |
|
|
|
|
|
|
|
| |
Fix error handling.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=282954
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Update kernel inclusions of capability.h to use capsicum.h instead; some
further refinement is required as some device drivers intended to be
portable over FreeBSD versions rely on __FreeBSD_version to decide whether
to include capability.h.
Sponsored by: Google, Inc.
Notes:
svn path=/stable/10/; revision=280258
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
For both iSCSI initiator and target increase socket buffer sizes before
establishing connection.
This is a workaround for Chelsio TOE driver, that does not update socket
buffer size in hardware after connection established, and unless that is
done beforehand, kernel code will stuck, attempting to send/receive full
PDU at once.
Notes:
svn path=/stable/10/; revision=279001
|
| |
|
|
| |
Notes:
svn path=/stable/10/; revision=278439
|
| |
|
|
|
|
|
| |
Switch it from polling with pause() to using cv_wait()/cv_signal().
Notes:
svn path=/stable/10/; revision=276629
|
| |
|
|
|
|
|
| |
s/icl_pdu_new/icl_pdu_new_empty/g; no functional changes.
Notes:
svn path=/stable/10/; revision=276628
|
| |
|
|
|
|
|
|
| |
s/icl_pdu_new_bhs/icl_pdu_new/; no functional changes, just a little
nicer code.
Notes:
svn path=/stable/10/; revision=276618
|
| |
|
|
|
|
|
|
|
|
|
| |
While we don't support MCS, hole in received sequence numbers may mean
only PDU loss. While we don't support lost PDU recovery, terminate the
connection to avoid stuck commands.
While there, improve handling of sequence numbers wrap after 2^32 PDUs.
Notes:
svn path=/stable/10/; revision=276613
|
| |
|
|
| |
Notes:
svn path=/stable/10/; revision=276234
|
| |
|
|
|
|
|
|
|
|
|
| |
Move icl_pdu_get_data() and xpt_done() out of initiator's session lock.
During heavy reads data copying in icl_pdu_get_data() may consume large
percent of CPU time. Moving it out of the lock significantly reduces
lock hold time and respectively lock congestion on read operations.
Notes:
svn path=/stable/10/; revision=275559
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When removing an iSCSI session, check whether all conditions match,
not if any of them matches. This fixes "iscsictl -Rn" removing
unrelated sessions.
PR: 194034
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=274546
|
| |
|
|
|
|
|
|
|
| |
It allows to push out some final data from the send queue to the socket
before its close. In particular, it increases chances for logout response
to be delivered to the initiator.
Notes:
svn path=/stable/10/; revision=273313
|
| |
|
|
|
|
|
|
|
|
| |
Make sure we handle less than zero timeouts in iSCSI initiator and target
in a reasonable way.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=273307
|
| |
|
|
|
|
|
|
|
| |
Use proper include paths in kernel iSCSI code.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=270891
|
| |
|
|
|
|
|
|
|
| |
Make the iSCSI stack use __FBSDID() properly.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=270888
|
| |
|
|
|
|
|
| |
Fix potential double free that could happen after connection error.
Notes:
svn path=/stable/10/; revision=269925
|
| |
|
|
|
|
|
| |
Implement redirection handling in initiator.
Notes:
svn path=/stable/10/; revision=269065
|
| |
|
|
| |
Notes:
svn path=/stable/10/; revision=268707
|
| |
|
|
|
|
|
|
|
| |
Add XPT_ABORT support to iSCSI initiator.
While CAM does not use it normally, it is useful for targets testing.
Notes:
svn path=/stable/10/; revision=268705
|
| |
|
|
|
|
|
|
| |
Make XPT_GET_TRAN_SETTINGS to report CAM that command queueing is enabled,
but make couple changes to handle non-queued commands too, if happen.
Notes:
svn path=/stable/10/; revision=268704
|
| |
|
|
|
|
|
|
|
|
|
| |
Make iSCSI initiator keep Initiator Session ID (ISID) across reconnects.
Previously ISID was changed every time, that made impossible correct
persistent reservation, because reconnected session was identified as
completely new one.
Notes:
svn path=/stable/10/; revision=268703
|
| |
|
|
|
|
|
| |
Remove unused val argument value from SYSCTL_INT() calls.
Notes:
svn path=/stable/10/; revision=265531
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Make it possible for the initiator side to operate in both proxy
and normal mode; this makes it possible to compile with the former
by default, but use it only when neccessary. That's especially
important for the userland part.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265526
|
| |
|
|
|
|
|
|
|
| |
Fix typo.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265525
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Improve use of socket buffer upcalls.
Use soreadable()/sowriteable() in socket upcalls to avoid extra wakeups
until we have enough data to read or space to write.
Increase partial receive len from 1K to 128K to not wake up on every
received packet.
This significantly reduces locks congestion and CPU usage and improves
throughput for large I/Os on NICs without TSO and LRO.
MFC r264552 by mav@:
Close the race in older code, that caused connection stuck after r264348.
Sponsored by: iXsystems, Inc.
Notes:
svn path=/stable/10/; revision=265524
|
| |
|
|
|
|
|
|
|
|
| |
Add kern.iscsi.fail_on_disconnection; this is required for gmultipath
to work.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265523
|
| |
|
|
|
|
|
|
|
| |
Remove useless debug.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265522
|
| |
|
|
|
|
|
|
|
| |
Be more strict with locking for is_waiting_for_iscsid variable.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265521
|
| |
|
|
|
|
|
|
|
|
| |
Get rid of ISCSIDCLOSE; it wasn't used and is redundant anyway,
because of ISCSIDFAIL.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265520
|
| |
|
|
|
|
|
|
|
| |
Properly pass the initiator address when running in proxy mode.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265513
|
| |
|
|
|
|
|
|
|
|
| |
Properly identify target portal when running in proxy mode. While here,
remove CTL_ISCSI_CLOSE, it wasn't used or implemented anyway.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265509
|
| |
|
|
|
|
|
|
|
|
| |
Add some stuff to make it easier to figure out for the system administrator
whether the ICL_KERNEL_PROXY stuff got compiled in correctly.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265508
|
| |
|
|
|
|
|
|
|
| |
Use a less unusual syntax in debug printfs.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265505
|
| |
|
|
|
|
|
|
|
| |
Remove hack to pass STAILQ to a function and do it properly instead.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265503
|
| |
|
|
|
|
|
|
|
|
| |
Rework the iSCSI PDU transmit code to avoid lock contention and coalesce
PDUs before sending.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265502
|
| |
|
|
|
|
|
|
|
| |
All the iSCSI sysctls are also tunables; advertise that.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265501
|
| |
|
|
|
|
|
|
|
| |
We don't need TAILQ for iSCSI PDUs; STAILQ is enough.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265500
|
| |
|
|
|
|
|
|
|
| |
Enable a KASSERT.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265499
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Get rid of the "autoscaling", instead just set socket buffer sizes
in the usual way. The only thing the old code did was making things
less predictable.
MFC r264058:
Fix build, broken by r264025.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265498
|
| |
|
|
|
|
|
|
|
|
| |
Instead of "icltx" and "iclrx", use thread names with prefix from upper
layer, so that one can see which side of the stack the threads are for.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265496
|
| |
|
|
|
|
|
|
|
|
|
| |
Get rid of ICL lock; use upper-layer (initiator or target) lock instead.
This avoids extra locking in icl_pdu_queue(); the upper layer needs to call
it while holding its own lock anyway, to avoid sending PDUs out of order.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265495
|
| |
|
|
|
|
|
|
|
| |
Move the ic_outstanding_count under #ifdef DIAGNOSTIC.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265488
|
| |
|
|
|
|
|
|
|
|
| |
Fix harmless warning after reconnecting a session and not doing anything
with it.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=265487
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fix a rare "truncated checksums" problem, which manifested like this:
WARNING: icl_pdu_check_data_digest: data digest check failed; got 0xf23b,
should be 0xdb7f23b
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=261771
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Fix extremely slow operation with data digests enabled. This was caused
by receive code waiting for data digest even when the data segment was
empty. It didn't actually read it, but it waited until those four bytes
become available in the socket buffer, i.e. until any other PDU (e.g. NOP)
came in.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=261770
|
| |
|
|
|
|
|
|
|
|
| |
Properly refuse handoff requests on already connected sessions. Previously
this would result in dropping the session.
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=259306
|
| |
|
|
|
|
|
|
|
|
| |
Fix hang on reboot with active iSCSI connections.
Approved by: re (glebius)
Sponsored by: The FreeBSD Foundation
Notes:
svn path=/stable/10/; revision=258915
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Don't spin with mutex hold when there is not enough room in the send socket
buffer. While here, make the code flow somewhat nicer.
Thanks to mav@ for tracking it down.
Approved by: re (glebius)
Notes:
svn path=/stable/10/; revision=257339
|
| |
|
|
|
|
|
|
| |
Approved by: re (gjb)
Sponsored by: FreeBSD Foundation
Notes:
svn path=/head/; revision=256238
|